;; -*- scheme -*-
; object definitions ...
(define-object DataQueue
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstDataQueue")
  (gtype-id "GST_TYPE_DATA_QUEUE")
)

(define-object Object
  (in-module "Gst")
  (parent "GInitiallyUnowned")
  (c-name "GstObject")
  (gtype-id "GST_TYPE_OBJECT")
)

(define-object NetTimeProvider
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstNetTimeProvider")
  (gtype-id "GST_TYPE_NET_TIME_PROVIDER")
)

(define-object Index
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstIndex")
  (gtype-id "GST_TYPE_INDEX")
)

(define-object Element
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstElement")
  (gtype-id "GST_TYPE_ELEMENT")
)

(define-object BaseParse
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseParse")
  (gtype-id "GST_TYPE_BASE_PARSE")
)

(define-object BaseSink
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseSink")
  (gtype-id "GST_TYPE_BASE_SINK")
)

(define-object BaseSrc
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseSrc")
  (gtype-id "GST_TYPE_BASE_SRC")
)

(define-object BaseTransform
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseTransform")
  (gtype-id "GST_TYPE_BASE_TRANSFORM")
)

(define-object Bin
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBin")
  (gtype-id "GST_TYPE_BIN")
)

(define-object DeviceProvider
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstDeviceProvider")
  (gtype-id "GST_TYPE_DEVICE_PROVIDER")
)

(define-object DeviceMonitor
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstDeviceMonitor")
  (gtype-id "GST_TYPE_DEVICE_MONITOR")
)

(define-object Device
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstDevice")
  (gtype-id "GST_TYPE_DEVICE")
)

(define-object ControlSource
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstControlSource")
  (gtype-id "GST_TYPE_CONTROL_SOURCE")
)

(define-object LFOControlSource
  (in-module "Gst")
  (parent "GstControlSource")
  (c-name "GstLFOControlSource")
  (gtype-id "GST_TYPE_LFO_CONTROL_SOURCE")
)

(define-object ControlBinding
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstControlBinding")
  (gtype-id "GST_TYPE_CONTROL_BINDING")
)

(define-object DirectControlBinding
  (in-module "Gst")
  (parent "GstControlBinding")
  (c-name "GstDirectControlBinding")
  (gtype-id "GST_TYPE_DIRECT_CONTROL_BINDING")
)

(define-object ARGBControlBinding
  (in-module "Gst")
  (parent "GstControlBinding")
  (c-name "GstARGBControlBinding")
  (gtype-id "GST_TYPE_ARGB_CONTROL_BINDING")
)

(define-object CollectPads
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstCollectPads")
  (gtype-id "GST_TYPE_COLLECT_PADS")
)

(define-object Clock
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstClock")
  (gtype-id "GST_TYPE_CLOCK")
)

(define-object Bus
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstBus")
  (gtype-id "GST_TYPE_BUS")
)

(define-object BufferPool
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstBufferPool")
  (gtype-id "GST_TYPE_BUFFER_POOL")
)

(define-object Allocator
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstAllocator")
  (gtype-id "GST_TYPE_ALLOCATOR")
)

(define-object Pad
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstPad")
  (gtype-id "GST_TYPE_PAD")
)

(define-object PadTemplate
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstPadTemplate")
  (gtype-id "GST_TYPE_PAD_TEMPLATE")
)

(define-object Pipeline
  (in-module "Gst")
  (parent "GstBin")
  (c-name "GstPipeline")
  (gtype-id "GST_TYPE_PIPELINE")
)

(define-object Plugin
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstPlugin")
  (gtype-id "GST_TYPE_PLUGIN")
)

(define-object PluginFeature
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstPluginFeature")
  (gtype-id "GST_TYPE_PLUGIN_FEATURE")
)

(define-object ElementFactory
  (in-module "Gst")
  (parent "GstPluginFeature")
  (c-name "GstElementFactory")
  (gtype-id "GST_TYPE_ELEMENT_FACTORY")
)

(define-object DeviceProviderFactory
  (in-module "Gst")
  (parent "GstPluginFeature")
  (c-name "GstDeviceProviderFactory")
  (gtype-id "GST_TYPE_DEVICE_PROVIDER_FACTORY")
)

(define-object ProxyPad
  (in-module "Gst")
  (parent "GstPad")
  (c-name "GstProxyPad")
  (gtype-id "GST_TYPE_PROXY_PAD")
)

(define-object GhostPad
  (in-module "Gst")
  (parent "GstProxyPad")
  (c-name "GstGhostPad")
  (gtype-id "GST_TYPE_GHOST_PAD")
)

(define-object PushSrc
  (in-module "Gst")
  (parent "GstBaseSrc")
  (c-name "GstPushSrc")
  (gtype-id "GST_TYPE_PUSH_SRC")
)

(define-object Registry
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstRegistry")
  (gtype-id "GST_TYPE_REGISTRY")
)

(define-object SystemClock
  (in-module "Gst")
  (parent "GstClock")
  (c-name "GstSystemClock")
  (gtype-id "GST_TYPE_SYSTEM_CLOCK")
)

(define-object PtpClock
  (in-module "Gst")
  (parent "GstSystemClock")
  (c-name "GstPtpClock")
  (gtype-id "GST_TYPE_PTP_CLOCK")
)

(define-object NetClientClock
  (in-module "Gst")
  (parent "GstSystemClock")
  (c-name "GstNetClientClock")
  (gtype-id "GST_TYPE_NET_CLIENT_CLOCK")
)

(define-object Task
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstTask")
  (gtype-id "GST_TYPE_TASK")
)

(define-object TaskPool
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstTaskPool")
  (gtype-id "GST_TYPE_TASK_POOL")
)

(define-object TestClock
  (in-module "Gst")
  (parent "GstClock")
  (c-name "GstTestClock")
  (gtype-id "GST_TYPE_TEST_CLOCK")
)

(define-object TimedValueControlSource
  (in-module "Gst")
  (parent "GstControlSource")
  (c-name "GstTimedValueControlSource")
  (gtype-id "GST_TYPE_TIMED_VALUE_CONTROL_SOURCE")
)

(define-object InterpolationControlSource
  (in-module "Gst")
  (parent "GstTimedValueControlSource")
  (c-name "GstInterpolationControlSource")
  (gtype-id "GST_TYPE_INTERPOLATION_CONTROL_SOURCE")
)

(define-object Tracer
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstTracer")
  (gtype-id "GST_TYPE_TRACER")
)

(define-object TracerFactory
  (in-module "Gst")
  (parent "GstPluginFeature")
  (c-name "GstTracerFactory")
  (gtype-id "GST_TYPE_TRACER_FACTORY")
)

(define-object TriggerControlSource
  (in-module "Gst")
  (parent "GstTimedValueControlSource")
  (c-name "GstTriggerControlSource")
  (gtype-id "GST_TYPE_TRIGGER_CONTROL_SOURCE")
)

(define-object TypeFindFactory
  (in-module "Gst")
  (parent "GstPluginFeature")
  (c-name "GstTypeFindFactory")
  (gtype-id "GST_TYPE_TYPE_FIND_FACTORY")
)

;; Enumerations and flags ...

(define-flags AllocatorFlags
  (in-module "Gst")
  (c-name "GstAllocatorFlags")
  (gtype-id "GST_TYPE_ALLOCATOR_FLAGS")
  (values
    '("custom-alloc" "GST_ALLOCATOR_FLAG_CUSTOM_ALLOC")
    '("last" "GST_ALLOCATOR_FLAG_LAST")
  )
)

(define-flags BinFlags
  (in-module "Gst")
  (c-name "GstBinFlags")
  (gtype-id "GST_TYPE_BIN_FLAGS")
  (values
    '("no-resync" "GST_BIN_FLAG_NO_RESYNC")
    '("last" "GST_BIN_FLAG_LAST")
  )
)

(define-flags BufferFlags
  (in-module "Gst")
  (c-name "GstBufferFlags")
  (gtype-id "GST_TYPE_BUFFER_FLAGS")
  (values
    '("live" "GST_BUFFER_FLAG_LIVE")
    '("decode-only" "GST_BUFFER_FLAG_DECODE_ONLY")
    '("discont" "GST_BUFFER_FLAG_DISCONT")
    '("resync" "GST_BUFFER_FLAG_RESYNC")
    '("corrupted" "GST_BUFFER_FLAG_CORRUPTED")
    '("marker" "GST_BUFFER_FLAG_MARKER")
    '("header" "GST_BUFFER_FLAG_HEADER")
    '("gap" "GST_BUFFER_FLAG_GAP")
    '("droppable" "GST_BUFFER_FLAG_DROPPABLE")
    '("delta-unit" "GST_BUFFER_FLAG_DELTA_UNIT")
    '("tag-memory" "GST_BUFFER_FLAG_TAG_MEMORY")
    '("sync-after" "GST_BUFFER_FLAG_SYNC_AFTER")
    '("last" "GST_BUFFER_FLAG_LAST")
  )
)

(define-flags BufferCopyFlags
  (in-module "Gst")
  (c-name "GstBufferCopyFlags")
  (gtype-id "GST_TYPE_BUFFER_COPY_FLAGS")
  (values
    '("none" "GST_BUFFER_COPY_NONE")
    '("flags" "GST_BUFFER_COPY_FLAGS")
    '("timestamps" "GST_BUFFER_COPY_TIMESTAMPS")
    '("meta" "GST_BUFFER_COPY_META")
    '("memory" "GST_BUFFER_COPY_MEMORY")
    '("merge" "GST_BUFFER_COPY_MERGE")
    '("deep" "GST_BUFFER_COPY_DEEP")
  )
)

(define-flags BufferPoolAcquireFlags
  (in-module "Gst")
  (c-name "GstBufferPoolAcquireFlags")
  (gtype-id "GST_TYPE_BUFFER_POOL_ACQUIRE_FLAGS")
  (values
    '("none" "GST_BUFFER_POOL_ACQUIRE_FLAG_NONE")
    '("key-unit" "GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT")
    '("dontwait" "GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT")
    '("discont" "GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT")
    '("last" "GST_BUFFER_POOL_ACQUIRE_FLAG_LAST")
  )
)

(define-flags BusFlags
  (in-module "Gst")
  (c-name "GstBusFlags")
  (gtype-id "GST_TYPE_BUS_FLAGS")
  (values
    '("flushing" "GST_BUS_FLUSHING")
    '("flag-last" "GST_BUS_FLAG_LAST")
  )
)

(define-enum BusSyncReply
  (in-module "Gst")
  (c-name "GstBusSyncReply")
  (gtype-id "GST_TYPE_BUS_SYNC_REPLY")
  (values
    '("drop" "GST_BUS_DROP")
    '("pass" "GST_BUS_PASS")
    '("async" "GST_BUS_ASYNC")
  )
)

(define-flags CapsFlags
  (in-module "Gst")
  (c-name "GstCapsFlags")
  (gtype-id "GST_TYPE_CAPS_FLAGS")
  (values
    '("any" "GST_CAPS_FLAG_ANY")
  )
)

(define-enum CapsIntersectMode
  (in-module "Gst")
  (c-name "GstCapsIntersectMode")
  (gtype-id "GST_TYPE_CAPS_INTERSECT_MODE")
  (values
    '("zig-zag" "GST_CAPS_INTERSECT_ZIG_ZAG")
    '("first" "GST_CAPS_INTERSECT_FIRST")
  )
)

(define-enum ClockReturn
  (in-module "Gst")
  (c-name "GstClockReturn")
  (gtype-id "GST_TYPE_CLOCK_RETURN")
  (values
    '("ok" "GST_CLOCK_OK")
    '("early" "GST_CLOCK_EARLY")
    '("unscheduled" "GST_CLOCK_UNSCHEDULED")
    '("busy" "GST_CLOCK_BUSY")
    '("badtime" "GST_CLOCK_BADTIME")
    '("error" "GST_CLOCK_ERROR")
    '("unsupported" "GST_CLOCK_UNSUPPORTED")
    '("done" "GST_CLOCK_DONE")
  )
)

(define-enum ClockEntryType
  (in-module "Gst")
  (c-name "GstClockEntryType")
  (gtype-id "GST_TYPE_CLOCK_ENTRY_TYPE")
  (values
    '("single" "GST_CLOCK_ENTRY_SINGLE")
    '("periodic" "GST_CLOCK_ENTRY_PERIODIC")
  )
)

(define-flags ClockFlags
  (in-module "Gst")
  (c-name "GstClockFlags")
  (gtype-id "GST_TYPE_CLOCK_FLAGS")
  (values
    '("can-do-single-sync" "GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC")
    '("can-do-single-async" "GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC")
    '("can-do-periodic-sync" "GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC")
    '("can-do-periodic-async" "GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC")
    '("can-set-resolution" "GST_CLOCK_FLAG_CAN_SET_RESOLUTION")
    '("can-set-master" "GST_CLOCK_FLAG_CAN_SET_MASTER")
    '("needs-startup-sync" "GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC")
    '("last" "GST_CLOCK_FLAG_LAST")
  )
)

(define-flags DebugGraphDetails
  (in-module "Gst")
  (c-name "GstDebugGraphDetails")
  (gtype-id "GST_TYPE_DEBUG_GRAPH_DETAILS")
  (values
    '("media-type" "GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE")
    '("caps-details" "GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS")
    '("non-default-params" "GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS")
    '("states" "GST_DEBUG_GRAPH_SHOW_STATES")
    '("full-params" "GST_DEBUG_GRAPH_SHOW_FULL_PARAMS")
    '("all" "GST_DEBUG_GRAPH_SHOW_ALL")
    '("verbose" "GST_DEBUG_GRAPH_SHOW_VERBOSE")
  )
)

(define-enum State
  (in-module "Gst")
  (c-name "GstState")
  (gtype-id "GST_TYPE_STATE")
  (values
    '("void-pending" "GST_STATE_VOID_PENDING")
    '("null" "GST_STATE_NULL")
    '("ready" "GST_STATE_READY")
    '("paused" "GST_STATE_PAUSED")
    '("playing" "GST_STATE_PLAYING")
  )
)

(define-enum StateChangeReturn
  (in-module "Gst")
  (c-name "GstStateChangeReturn")
  (gtype-id "GST_TYPE_STATE_CHANGE_RETURN")
  (values
    '("failure" "GST_STATE_CHANGE_FAILURE")
    '("success" "GST_STATE_CHANGE_SUCCESS")
    '("async" "GST_STATE_CHANGE_ASYNC")
    '("no-preroll" "GST_STATE_CHANGE_NO_PREROLL")
  )
)

(define-flags StateChange
  (in-module "Gst")
  (c-name "GstStateChange")
  (gtype-id "GST_TYPE_STATE_CHANGE")
  (values
    '("null-to-ready" "GST_STATE_CHANGE_NULL_TO_READY")
    '("ready-to-paused" "GST_STATE_CHANGE_READY_TO_PAUSED")
    '("paused-to-playing" "GST_STATE_CHANGE_PAUSED_TO_PLAYING")
    '("playing-to-paused" "GST_STATE_CHANGE_PLAYING_TO_PAUSED")
    '("paused-to-ready" "GST_STATE_CHANGE_PAUSED_TO_READY")
    '("ready-to-null" "GST_STATE_CHANGE_READY_TO_NULL")
  )
)

(define-flags ElementFlags
  (in-module "Gst")
  (c-name "GstElementFlags")
  (gtype-id "GST_TYPE_ELEMENT_FLAGS")
  (values
    '("locked-state" "GST_ELEMENT_FLAG_LOCKED_STATE")
    '("sink" "GST_ELEMENT_FLAG_SINK")
    '("source" "GST_ELEMENT_FLAG_SOURCE")
    '("provide-clock" "GST_ELEMENT_FLAG_PROVIDE_CLOCK")
    '("require-clock" "GST_ELEMENT_FLAG_REQUIRE_CLOCK")
    '("indexable" "GST_ELEMENT_FLAG_INDEXABLE")
    '("last" "GST_ELEMENT_FLAG_LAST")
  )
)

(define-enum CoreError
  (in-module "Gst")
  (c-name "GstCoreError")
  (gtype-id "GST_TYPE_CORE_ERROR")
  (values
    '("failed" "GST_CORE_ERROR_FAILED")
    '("too-lazy" "GST_CORE_ERROR_TOO_LAZY")
    '("not-implemented" "GST_CORE_ERROR_NOT_IMPLEMENTED")
    '("state-change" "GST_CORE_ERROR_STATE_CHANGE")
    '("pad" "GST_CORE_ERROR_PAD")
    '("thread" "GST_CORE_ERROR_THREAD")
    '("negotiation" "GST_CORE_ERROR_NEGOTIATION")
    '("event" "GST_CORE_ERROR_EVENT")
    '("seek" "GST_CORE_ERROR_SEEK")
    '("caps" "GST_CORE_ERROR_CAPS")
    '("tag" "GST_CORE_ERROR_TAG")
    '("missing-plugin" "GST_CORE_ERROR_MISSING_PLUGIN")
    '("clock" "GST_CORE_ERROR_CLOCK")
    '("disabled" "GST_CORE_ERROR_DISABLED")
    '("num-errors" "GST_CORE_ERROR_NUM_ERRORS")
  )
)

(define-enum LibraryError
  (in-module "Gst")
  (c-name "GstLibraryError")
  (gtype-id "GST_TYPE_LIBRARY_ERROR")
  (values
    '("failed" "GST_LIBRARY_ERROR_FAILED")
    '("too-lazy" "GST_LIBRARY_ERROR_TOO_LAZY")
    '("init" "GST_LIBRARY_ERROR_INIT")
    '("shutdown" "GST_LIBRARY_ERROR_SHUTDOWN")
    '("settings" "GST_LIBRARY_ERROR_SETTINGS")
    '("encode" "GST_LIBRARY_ERROR_ENCODE")
    '("num-errors" "GST_LIBRARY_ERROR_NUM_ERRORS")
  )
)

(define-enum ResourceError
  (in-module "Gst")
  (c-name "GstResourceError")
  (gtype-id "GST_TYPE_RESOURCE_ERROR")
  (values
    '("failed" "GST_RESOURCE_ERROR_FAILED")
    '("too-lazy" "GST_RESOURCE_ERROR_TOO_LAZY")
    '("not-found" "GST_RESOURCE_ERROR_NOT_FOUND")
    '("busy" "GST_RESOURCE_ERROR_BUSY")
    '("open-read" "GST_RESOURCE_ERROR_OPEN_READ")
    '("open-write" "GST_RESOURCE_ERROR_OPEN_WRITE")
    '("open-read-write" "GST_RESOURCE_ERROR_OPEN_READ_WRITE")
    '("close" "GST_RESOURCE_ERROR_CLOSE")
    '("read" "GST_RESOURCE_ERROR_READ")
    '("write" "GST_RESOURCE_ERROR_WRITE")
    '("seek" "GST_RESOURCE_ERROR_SEEK")
    '("sync" "GST_RESOURCE_ERROR_SYNC")
    '("settings" "GST_RESOURCE_ERROR_SETTINGS")
    '("no-space-left" "GST_RESOURCE_ERROR_NO_SPACE_LEFT")
    '("not-authorized" "GST_RESOURCE_ERROR_NOT_AUTHORIZED")
    '("num-errors" "GST_RESOURCE_ERROR_NUM_ERRORS")
  )
)

(define-enum StreamError
  (in-module "Gst")
  (c-name "GstStreamError")
  (gtype-id "GST_TYPE_STREAM_ERROR")
  (values
    '("failed" "GST_STREAM_ERROR_FAILED")
    '("too-lazy" "GST_STREAM_ERROR_TOO_LAZY")
    '("not-implemented" "GST_STREAM_ERROR_NOT_IMPLEMENTED")
    '("type-not-found" "GST_STREAM_ERROR_TYPE_NOT_FOUND")
    '("wrong-type" "GST_STREAM_ERROR_WRONG_TYPE")
    '("codec-not-found" "GST_STREAM_ERROR_CODEC_NOT_FOUND")
    '("decode" "GST_STREAM_ERROR_DECODE")
    '("encode" "GST_STREAM_ERROR_ENCODE")
    '("demux" "GST_STREAM_ERROR_DEMUX")
    '("mux" "GST_STREAM_ERROR_MUX")
    '("format" "GST_STREAM_ERROR_FORMAT")
    '("decrypt" "GST_STREAM_ERROR_DECRYPT")
    '("decrypt-nokey" "GST_STREAM_ERROR_DECRYPT_NOKEY")
    '("num-errors" "GST_STREAM_ERROR_NUM_ERRORS")
  )
)

(define-flags EventTypeFlags
  (in-module "Gst")
  (c-name "GstEventTypeFlags")
  (gtype-id "GST_TYPE_EVENT_TYPE_FLAGS")
  (values
    '("upstream" "GST_EVENT_TYPE_UPSTREAM")
    '("downstream" "GST_EVENT_TYPE_DOWNSTREAM")
    '("serialized" "GST_EVENT_TYPE_SERIALIZED")
    '("sticky" "GST_EVENT_TYPE_STICKY")
    '("sticky-multi" "GST_EVENT_TYPE_STICKY_MULTI")
  )
)

(define-enum EventType
  (in-module "Gst")
  (c-name "GstEventType")
  (gtype-id "GST_TYPE_EVENT_TYPE")
  (values
    '("gst-event-unknown" "GST_EVENT_UNKNOWN")
    '("0)" "0)")
    '("gst-event-flush-start" "GST_EVENT_FLUSH_START")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-event-flush-stop" "GST_EVENT_FLUSH_STOP")
    '("flag(both)" "FLAG(BOTH)")
    '("gst-event-stream-start" "GST_EVENT_STREAM_START")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-caps" "GST_EVENT_CAPS")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-segment" "GST_EVENT_SEGMENT")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-tag" "GST_EVENT_TAG")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-buffersize" "GST_EVENT_BUFFERSIZE")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-sink-message" "GST_EVENT_SINK_MESSAGE")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-eos" "GST_EVENT_EOS")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-toc" "GST_EVENT_TOC")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-protection" "GST_EVENT_PROTECTION")
    '("flag" "FLAG")
    '("gst-event-segment-done" "GST_EVENT_SEGMENT_DONE")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-gap" "GST_EVENT_GAP")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-qos" "GST_EVENT_QOS")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-event-seek" "GST_EVENT_SEEK")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-event-navigation" "GST_EVENT_NAVIGATION")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-event-latency" "GST_EVENT_LATENCY")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-event-step" "GST_EVENT_STEP")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-event-reconfigure" "GST_EVENT_RECONFIGURE")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-event-toc-select" "GST_EVENT_TOC_SELECT")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-event-custom-upstream" "GST_EVENT_CUSTOM_UPSTREAM")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-event-custom-downstream" "GST_EVENT_CUSTOM_DOWNSTREAM")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-custom-downstream-oob" "GST_EVENT_CUSTOM_DOWNSTREAM_OOB")
    '("flag(downstream))" "FLAG(DOWNSTREAM))")
    '("gst-event-custom-downstream-sticky" "GST_EVENT_CUSTOM_DOWNSTREAM_STICKY")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-event-custom-both" "GST_EVENT_CUSTOM_BOTH")
    '("flag(both)" "FLAG(BOTH)")
    '("gst-event-custom-both-oob" "GST_EVENT_CUSTOM_BOTH_OOB")
    '("flag(both))" "FLAG(BOTH))")
  )
)

(define-enum QOSType
  (in-module "Gst")
  (c-name "GstQOSType")
  (gtype-id "GST_TYPE_QOS_TYPE")
  (values
    '("overflow" "GST_QOS_TYPE_OVERFLOW")
    '("underflow" "GST_QOS_TYPE_UNDERFLOW")
    '("throttle" "GST_QOS_TYPE_THROTTLE")
  )
)

(define-flags StreamFlags
  (in-module "Gst")
  (c-name "GstStreamFlags")
  (gtype-id "GST_TYPE_STREAM_FLAGS")
  (values
    '("none" "GST_STREAM_FLAG_NONE")
    '("sparse" "GST_STREAM_FLAG_SPARSE")
    '("select" "GST_STREAM_FLAG_SELECT")
    '("unselect" "GST_STREAM_FLAG_UNSELECT")
  )
)

(define-enum Format
  (in-module "Gst")
  (c-name "GstFormat")
  (gtype-id "GST_TYPE_FORMAT")
  (values
    '("undefined" "GST_FORMAT_UNDEFINED")
    '("default" "GST_FORMAT_DEFAULT")
    '("bytes" "GST_FORMAT_BYTES")
    '("time" "GST_FORMAT_TIME")
    '("buffers" "GST_FORMAT_BUFFERS")
    '("percent" "GST_FORMAT_PERCENT")
  )
)

(define-enum DebugLevel
  (in-module "Gst")
  (c-name "GstDebugLevel")
  (gtype-id "GST_TYPE_DEBUG_LEVEL")
  (values
    '("none" "GST_LEVEL_NONE")
    '("error" "GST_LEVEL_ERROR")
    '("warning" "GST_LEVEL_WARNING")
    '("fixme" "GST_LEVEL_FIXME")
    '("info" "GST_LEVEL_INFO")
    '("debug" "GST_LEVEL_DEBUG")
    '("log" "GST_LEVEL_LOG")
    '("trace" "GST_LEVEL_TRACE")
    '("memdump" "GST_LEVEL_MEMDUMP")
    '("count" "GST_LEVEL_COUNT")
  )
)

(define-enum DebugColorFlags
  (in-module "Gst")
  (c-name "GstDebugColorFlags")
  (gtype-id "GST_TYPE_DEBUG_COLOR_FLAGS")
  (values
    '("fg-black" "GST_DEBUG_FG_BLACK")
    '("fg-red" "GST_DEBUG_FG_RED")
    '("fg-green" "GST_DEBUG_FG_GREEN")
    '("fg-yellow" "GST_DEBUG_FG_YELLOW")
    '("fg-blue" "GST_DEBUG_FG_BLUE")
    '("fg-magenta" "GST_DEBUG_FG_MAGENTA")
    '("fg-cyan" "GST_DEBUG_FG_CYAN")
    '("fg-white" "GST_DEBUG_FG_WHITE")
    '("bg-black" "GST_DEBUG_BG_BLACK")
    '("bg-red" "GST_DEBUG_BG_RED")
    '("bg-green" "GST_DEBUG_BG_GREEN")
    '("bg-yellow" "GST_DEBUG_BG_YELLOW")
    '("bg-blue" "GST_DEBUG_BG_BLUE")
    '("bg-magenta" "GST_DEBUG_BG_MAGENTA")
    '("bg-cyan" "GST_DEBUG_BG_CYAN")
    '("bg-white" "GST_DEBUG_BG_WHITE")
    '("bold" "GST_DEBUG_BOLD")
    '("underline" "GST_DEBUG_UNDERLINE")
  )
)

(define-enum DebugColorMode
  (in-module "Gst")
  (c-name "GstDebugColorMode")
  (gtype-id "GST_TYPE_DEBUG_COLOR_MODE")
  (values
    '("off" "GST_DEBUG_COLOR_MODE_OFF")
    '("on" "GST_DEBUG_COLOR_MODE_ON")
    '("unix" "GST_DEBUG_COLOR_MODE_UNIX")
  )
)

(define-enum IteratorResult
  (in-module "Gst")
  (c-name "GstIteratorResult")
  (gtype-id "GST_TYPE_ITERATOR_RESULT")
  (values
    '("done" "GST_ITERATOR_DONE")
    '("ok" "GST_ITERATOR_OK")
    '("resync" "GST_ITERATOR_RESYNC")
    '("error" "GST_ITERATOR_ERROR")
  )
)

(define-enum IteratorItem
  (in-module "Gst")
  (c-name "GstIteratorItem")
  (gtype-id "GST_TYPE_ITERATOR_ITEM")
  (values
    '("skip" "GST_ITERATOR_ITEM_SKIP")
    '("pass" "GST_ITERATOR_ITEM_PASS")
    '("end" "GST_ITERATOR_ITEM_END")
  )
)

(define-flags MemoryFlags
  (in-module "Gst")
  (c-name "GstMemoryFlags")
  (gtype-id "GST_TYPE_MEMORY_FLAGS")
  (values
    '("readonly" "GST_MEMORY_FLAG_READONLY")
    '("no-share" "GST_MEMORY_FLAG_NO_SHARE")
    '("zero-prefixed" "GST_MEMORY_FLAG_ZERO_PREFIXED")
    '("zero-padded" "GST_MEMORY_FLAG_ZERO_PADDED")
    '("physically-contiguous" "GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS")
    '("not-mappable" "GST_MEMORY_FLAG_NOT_MAPPABLE")
    '("last" "GST_MEMORY_FLAG_LAST")
  )
)

(define-flags MapFlags
  (in-module "Gst")
  (c-name "GstMapFlags")
  (gtype-id "GST_TYPE_MAP_FLAGS")
  (values
    '("read" "GST_MAP_READ")
    '("write" "GST_MAP_WRITE")
    '("flag-last" "GST_MAP_FLAG_LAST")
  )
)

(define-flags MessageType
  (in-module "Gst")
  (c-name "GstMessageType")
  (gtype-id "GST_TYPE_MESSAGE_TYPE")
  (values
    '("unknown" "GST_MESSAGE_UNKNOWN")
    '("eos" "GST_MESSAGE_EOS")
    '("error" "GST_MESSAGE_ERROR")
    '("warning" "GST_MESSAGE_WARNING")
    '("info" "GST_MESSAGE_INFO")
    '("tag" "GST_MESSAGE_TAG")
    '("buffering" "GST_MESSAGE_BUFFERING")
    '("state-changed" "GST_MESSAGE_STATE_CHANGED")
    '("state-dirty" "GST_MESSAGE_STATE_DIRTY")
    '("step-done" "GST_MESSAGE_STEP_DONE")
    '("clock-provide" "GST_MESSAGE_CLOCK_PROVIDE")
    '("clock-lost" "GST_MESSAGE_CLOCK_LOST")
    '("new-clock" "GST_MESSAGE_NEW_CLOCK")
    '("structure-change" "GST_MESSAGE_STRUCTURE_CHANGE")
    '("stream-status" "GST_MESSAGE_STREAM_STATUS")
    '("application" "GST_MESSAGE_APPLICATION")
    '("element" "GST_MESSAGE_ELEMENT")
    '("segment-start" "GST_MESSAGE_SEGMENT_START")
    '("segment-done" "GST_MESSAGE_SEGMENT_DONE")
    '("duration-changed" "GST_MESSAGE_DURATION_CHANGED")
    '("latency" "GST_MESSAGE_LATENCY")
    '("async-start" "GST_MESSAGE_ASYNC_START")
    '("async-done" "GST_MESSAGE_ASYNC_DONE")
    '("request-state" "GST_MESSAGE_REQUEST_STATE")
    '("step-start" "GST_MESSAGE_STEP_START")
    '("qos" "GST_MESSAGE_QOS")
    '("progress" "GST_MESSAGE_PROGRESS")
    '("toc" "GST_MESSAGE_TOC")
    '("reset-time" "GST_MESSAGE_RESET_TIME")
    '("stream-start" "GST_MESSAGE_STREAM_START")
    '("need-context" "GST_MESSAGE_NEED_CONTEXT")
    '("have-context" "GST_MESSAGE_HAVE_CONTEXT")
    '("extended" "GST_MESSAGE_EXTENDED")
    '("device-added" "GST_MESSAGE_DEVICE_ADDED")
    '("device-removed" "GST_MESSAGE_DEVICE_REMOVED")
    '("any" "GST_MESSAGE_ANY")
  )
)

(define-enum StructureChangeType
  (in-module "Gst")
  (c-name "GstStructureChangeType")
  (gtype-id "GST_TYPE_STRUCTURE_CHANGE_TYPE")
  (values
    '("link" "GST_STRUCTURE_CHANGE_TYPE_PAD_LINK")
    '("unlink" "GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK")
  )
)

(define-enum StreamStatusType
  (in-module "Gst")
  (c-name "GstStreamStatusType")
  (gtype-id "GST_TYPE_STREAM_STATUS_TYPE")
  (values
    '("create" "GST_STREAM_STATUS_TYPE_CREATE")
    '("enter" "GST_STREAM_STATUS_TYPE_ENTER")
    '("leave" "GST_STREAM_STATUS_TYPE_LEAVE")
    '("destroy" "GST_STREAM_STATUS_TYPE_DESTROY")
    '("start" "GST_STREAM_STATUS_TYPE_START")
    '("pause" "GST_STREAM_STATUS_TYPE_PAUSE")
    '("stop" "GST_STREAM_STATUS_TYPE_STOP")
  )
)

(define-enum ProgressType
  (in-module "Gst")
  (c-name "GstProgressType")
  (gtype-id "GST_TYPE_PROGRESS_TYPE")
  (values
    '("start" "GST_PROGRESS_TYPE_START")
    '("continue" "GST_PROGRESS_TYPE_CONTINUE")
    '("complete" "GST_PROGRESS_TYPE_COMPLETE")
    '("canceled" "GST_PROGRESS_TYPE_CANCELED")
    '("error" "GST_PROGRESS_TYPE_ERROR")
  )
)

(define-flags MetaFlags
  (in-module "Gst")
  (c-name "GstMetaFlags")
  (gtype-id "GST_TYPE_META_FLAGS")
  (values
    '("none" "GST_META_FLAG_NONE")
    '("readonly" "GST_META_FLAG_READONLY")
    '("pooled" "GST_META_FLAG_POOLED")
    '("locked" "GST_META_FLAG_LOCKED")
    '("last" "GST_META_FLAG_LAST")
  )
)

(define-flags MiniObjectFlags
  (in-module "Gst")
  (c-name "GstMiniObjectFlags")
  (gtype-id "GST_TYPE_MINI_OBJECT_FLAGS")
  (values
    '("lockable" "GST_MINI_OBJECT_FLAG_LOCKABLE")
    '("lock-readonly" "GST_MINI_OBJECT_FLAG_LOCK_READONLY")
    '("last" "GST_MINI_OBJECT_FLAG_LAST")
  )
)

(define-flags LockFlags
  (in-module "Gst")
  (c-name "GstLockFlags")
  (gtype-id "GST_TYPE_LOCK_FLAGS")
  (values
    '("read" "GST_LOCK_FLAG_READ")
    '("write" "GST_LOCK_FLAG_WRITE")
    '("exclusive" "GST_LOCK_FLAG_EXCLUSIVE")
    '("last" "GST_LOCK_FLAG_LAST")
  )
)

(define-flags ObjectFlags
  (in-module "Gst")
  (c-name "GstObjectFlags")
  (gtype-id "GST_TYPE_OBJECT_FLAGS")
  (values
    '("last" "GST_OBJECT_FLAG_LAST")
  )
)

(define-enum PadDirection
  (in-module "Gst")
  (c-name "GstPadDirection")
  (gtype-id "GST_TYPE_PAD_DIRECTION")
  (values
    '("unknown" "GST_PAD_UNKNOWN")
    '("src" "GST_PAD_SRC")
    '("sink" "GST_PAD_SINK")
  )
)

(define-enum PadMode
  (in-module "Gst")
  (c-name "GstPadMode")
  (gtype-id "GST_TYPE_PAD_MODE")
  (values
    '("none" "GST_PAD_MODE_NONE")
    '("push" "GST_PAD_MODE_PUSH")
    '("pull" "GST_PAD_MODE_PULL")
  )
)

(define-enum PadLinkReturn
  (in-module "Gst")
  (c-name "GstPadLinkReturn")
  (gtype-id "GST_TYPE_PAD_LINK_RETURN")
  (values
    '("ok" "GST_PAD_LINK_OK")
    '("wrong-hierarchy" "GST_PAD_LINK_WRONG_HIERARCHY")
    '("was-linked" "GST_PAD_LINK_WAS_LINKED")
    '("wrong-direction" "GST_PAD_LINK_WRONG_DIRECTION")
    '("noformat" "GST_PAD_LINK_NOFORMAT")
    '("nosched" "GST_PAD_LINK_NOSCHED")
    '("refused" "GST_PAD_LINK_REFUSED")
  )
)

(define-enum FlowReturn
  (in-module "Gst")
  (c-name "GstFlowReturn")
  (gtype-id "GST_TYPE_FLOW_RETURN")
  (values
    '("custom-success-2" "GST_FLOW_CUSTOM_SUCCESS_2")
    '("custom-success-1" "GST_FLOW_CUSTOM_SUCCESS_1")
    '("custom-success" "GST_FLOW_CUSTOM_SUCCESS")
    '("ok" "GST_FLOW_OK")
    '("not-linked" "GST_FLOW_NOT_LINKED")
    '("flushing" "GST_FLOW_FLUSHING")
    '("eos" "GST_FLOW_EOS")
    '("not-negotiated" "GST_FLOW_NOT_NEGOTIATED")
    '("error" "GST_FLOW_ERROR")
    '("not-supported" "GST_FLOW_NOT_SUPPORTED")
    '("custom-error" "GST_FLOW_CUSTOM_ERROR")
    '("custom-error-1" "GST_FLOW_CUSTOM_ERROR_1")
    '("custom-error-2" "GST_FLOW_CUSTOM_ERROR_2")
  )
)

(define-flags PadLinkCheck
  (in-module "Gst")
  (c-name "GstPadLinkCheck")
  (gtype-id "GST_TYPE_PAD_LINK_CHECK")
  (values
    '("nothing" "GST_PAD_LINK_CHECK_NOTHING")
    '("hierarchy" "GST_PAD_LINK_CHECK_HIERARCHY")
    '("template-caps" "GST_PAD_LINK_CHECK_TEMPLATE_CAPS")
    '("caps" "GST_PAD_LINK_CHECK_CAPS")
    '("default" "GST_PAD_LINK_CHECK_DEFAULT")
  )
)

(define-flags PadProbeType
  (in-module "Gst")
  (c-name "GstPadProbeType")
  (gtype-id "GST_TYPE_PAD_PROBE_TYPE")
  (values
    '("invalid" "GST_PAD_PROBE_TYPE_INVALID")
    '("idle" "GST_PAD_PROBE_TYPE_IDLE")
    '("block" "GST_PAD_PROBE_TYPE_BLOCK")
    '("buffer" "GST_PAD_PROBE_TYPE_BUFFER")
    '("buffer-list" "GST_PAD_PROBE_TYPE_BUFFER_LIST")
    '("event-downstream" "GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM")
    '("event-upstream" "GST_PAD_PROBE_TYPE_EVENT_UPSTREAM")
    '("event-flush" "GST_PAD_PROBE_TYPE_EVENT_FLUSH")
    '("query-downstream" "GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM")
    '("query-upstream" "GST_PAD_PROBE_TYPE_QUERY_UPSTREAM")
    '("push" "GST_PAD_PROBE_TYPE_PUSH")
    '("pull" "GST_PAD_PROBE_TYPE_PULL")
    '("blocking" "GST_PAD_PROBE_TYPE_BLOCKING")
    '("data-downstream" "GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM")
    '("data-upstream" "GST_PAD_PROBE_TYPE_DATA_UPSTREAM")
    '("data-both" "GST_PAD_PROBE_TYPE_DATA_BOTH")
    '("block-downstream" "GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM")
    '("block-upstream" "GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM")
    '("event-both" "GST_PAD_PROBE_TYPE_EVENT_BOTH")
    '("query-both" "GST_PAD_PROBE_TYPE_QUERY_BOTH")
    '("all-both" "GST_PAD_PROBE_TYPE_ALL_BOTH")
    '("scheduling" "GST_PAD_PROBE_TYPE_SCHEDULING")
  )
)

(define-enum PadProbeReturn
  (in-module "Gst")
  (c-name "GstPadProbeReturn")
  (gtype-id "GST_TYPE_PAD_PROBE_RETURN")
  (values
    '("drop" "GST_PAD_PROBE_DROP")
    '("ok" "GST_PAD_PROBE_OK")
    '("remove" "GST_PAD_PROBE_REMOVE")
    '("pass" "GST_PAD_PROBE_PASS")
    '("handled" "GST_PAD_PROBE_HANDLED")
  )
)

(define-flags PadFlags
  (in-module "Gst")
  (c-name "GstPadFlags")
  (gtype-id "GST_TYPE_PAD_FLAGS")
  (values
    '("blocked" "GST_PAD_FLAG_BLOCKED")
    '("flushing" "GST_PAD_FLAG_FLUSHING")
    '("eos" "GST_PAD_FLAG_EOS")
    '("blocking" "GST_PAD_FLAG_BLOCKING")
    '("need-parent" "GST_PAD_FLAG_NEED_PARENT")
    '("need-reconfigure" "GST_PAD_FLAG_NEED_RECONFIGURE")
    '("pending-events" "GST_PAD_FLAG_PENDING_EVENTS")
    '("fixed-caps" "GST_PAD_FLAG_FIXED_CAPS")
    '("proxy-caps" "GST_PAD_FLAG_PROXY_CAPS")
    '("proxy-allocation" "GST_PAD_FLAG_PROXY_ALLOCATION")
    '("proxy-scheduling" "GST_PAD_FLAG_PROXY_SCHEDULING")
    '("accept-intersect" "GST_PAD_FLAG_ACCEPT_INTERSECT")
    '("accept-template" "GST_PAD_FLAG_ACCEPT_TEMPLATE")
    '("last" "GST_PAD_FLAG_LAST")
  )
)

(define-enum PadPresence
  (in-module "Gst")
  (c-name "GstPadPresence")
  (gtype-id "GST_TYPE_PAD_PRESENCE")
  (values
    '("always" "GST_PAD_ALWAYS")
    '("sometimes" "GST_PAD_SOMETIMES")
    '("request" "GST_PAD_REQUEST")
  )
)

(define-flags PadTemplateFlags
  (in-module "Gst")
  (c-name "GstPadTemplateFlags")
  (gtype-id "GST_TYPE_PAD_TEMPLATE_FLAGS")
  (values
    '("last" "GST_PAD_TEMPLATE_FLAG_LAST")
  )
)

(define-enum ParseError
  (in-module "Gst")
  (c-name "GstParseError")
  (gtype-id "GST_TYPE_PARSE_ERROR")
  (values
    '("syntax" "GST_PARSE_ERROR_SYNTAX")
    '("no-such-element" "GST_PARSE_ERROR_NO_SUCH_ELEMENT")
    '("no-such-property" "GST_PARSE_ERROR_NO_SUCH_PROPERTY")
    '("link" "GST_PARSE_ERROR_LINK")
    '("could-not-set-property" "GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY")
    '("empty-bin" "GST_PARSE_ERROR_EMPTY_BIN")
    '("empty" "GST_PARSE_ERROR_EMPTY")
    '("delayed-link" "GST_PARSE_ERROR_DELAYED_LINK")
  )
)

(define-flags ParseFlags
  (in-module "Gst")
  (c-name "GstParseFlags")
  (gtype-id "GST_TYPE_PARSE_FLAGS")
  (values
    '("none" "GST_PARSE_FLAG_NONE")
    '("fatal-errors" "GST_PARSE_FLAG_FATAL_ERRORS")
    '("no-single-element-bins" "GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS")
  )
)

(define-flags PipelineFlags
  (in-module "Gst")
  (c-name "GstPipelineFlags")
  (gtype-id "GST_TYPE_PIPELINE_FLAGS")
  (values
    '("fixed-clock" "GST_PIPELINE_FLAG_FIXED_CLOCK")
    '("last" "GST_PIPELINE_FLAG_LAST")
  )
)

(define-enum Rank
  (in-module "Gst")
  (c-name "GstRank")
  (gtype-id "GST_TYPE_RANK")
  (values
    '("none" "GST_RANK_NONE")
    '("marginal" "GST_RANK_MARGINAL")
    '("secondary" "GST_RANK_SECONDARY")
    '("primary" "GST_RANK_PRIMARY")
  )
)

(define-enum PluginError
  (in-module "Gst")
  (c-name "GstPluginError")
  (gtype-id "GST_TYPE_PLUGIN_ERROR")
  (values
    '("module" "GST_PLUGIN_ERROR_MODULE")
    '("dependencies" "GST_PLUGIN_ERROR_DEPENDENCIES")
    '("name-mismatch" "GST_PLUGIN_ERROR_NAME_MISMATCH")
  )
)

(define-flags PluginFlags
  (in-module "Gst")
  (c-name "GstPluginFlags")
  (gtype-id "GST_TYPE_PLUGIN_FLAGS")
  (values
    '("cached" "GST_PLUGIN_FLAG_CACHED")
    '("blacklisted" "GST_PLUGIN_FLAG_BLACKLISTED")
  )
)

(define-flags PluginDependencyFlags
  (in-module "Gst")
  (c-name "GstPluginDependencyFlags")
  (gtype-id "GST_TYPE_PLUGIN_DEPENDENCY_FLAGS")
  (values
    '("none" "GST_PLUGIN_DEPENDENCY_FLAG_NONE")
    '("recurse" "GST_PLUGIN_DEPENDENCY_FLAG_RECURSE")
    '("paths-are-default-only" "GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY")
    '("file-name-is-suffix" "GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX")
    '("file-name-is-prefix" "GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX")
  )
)

(define-flags QueryTypeFlags
  (in-module "Gst")
  (c-name "GstQueryTypeFlags")
  (gtype-id "GST_TYPE_QUERY_TYPE_FLAGS")
  (values
    '("upstream" "GST_QUERY_TYPE_UPSTREAM")
    '("downstream" "GST_QUERY_TYPE_DOWNSTREAM")
    '("serialized" "GST_QUERY_TYPE_SERIALIZED")
  )
)

(define-enum QueryType
  (in-module "Gst")
  (c-name "GstQueryType")
  (gtype-id "GST_TYPE_QUERY_TYPE")
  (values
    '("gst-query-unknown" "GST_QUERY_UNKNOWN")
    '("0)" "0)")
    '("gst-query-position" "GST_QUERY_POSITION")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-duration" "GST_QUERY_DURATION")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-latency" "GST_QUERY_LATENCY")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-jitter" "GST_QUERY_JITTER")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-rate" "GST_QUERY_RATE")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-seeking" "GST_QUERY_SEEKING")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-segment" "GST_QUERY_SEGMENT")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-convert" "GST_QUERY_CONVERT")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-formats" "GST_QUERY_FORMATS")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-buffering" "GST_QUERY_BUFFERING")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-custom" "GST_QUERY_CUSTOM")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-uri" "GST_QUERY_URI")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-allocation" "GST_QUERY_ALLOCATION")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-query-scheduling" "GST_QUERY_SCHEDULING")
    '("flag(upstream))" "FLAG(UPSTREAM))")
    '("gst-query-accept-caps" "GST_QUERY_ACCEPT_CAPS")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-caps" "GST_QUERY_CAPS")
    '("flag(both))" "FLAG(BOTH))")
    '("gst-query-drain" "GST_QUERY_DRAIN")
    '("flag(downstream)" "FLAG(DOWNSTREAM)")
    '("gst-query-context" "GST_QUERY_CONTEXT")
    '("flag(both))" "FLAG(BOTH))")
  )
)

(define-enum BufferingMode
  (in-module "Gst")
  (c-name "GstBufferingMode")
  (gtype-id "GST_TYPE_BUFFERING_MODE")
  (values
    '("stream" "GST_BUFFERING_STREAM")
    '("download" "GST_BUFFERING_DOWNLOAD")
    '("timeshift" "GST_BUFFERING_TIMESHIFT")
    '("live" "GST_BUFFERING_LIVE")
  )
)

(define-flags SchedulingFlags
  (in-module "Gst")
  (c-name "GstSchedulingFlags")
  (gtype-id "GST_TYPE_SCHEDULING_FLAGS")
  (values
    '("seekable" "GST_SCHEDULING_FLAG_SEEKABLE")
    '("sequential" "GST_SCHEDULING_FLAG_SEQUENTIAL")
    '("bandwidth-limited" "GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED")
  )
)

(define-enum SeekType
  (in-module "Gst")
  (c-name "GstSeekType")
  (gtype-id "GST_TYPE_SEEK_TYPE")
  (values
    '("none" "GST_SEEK_TYPE_NONE")
    '("set" "GST_SEEK_TYPE_SET")
    '("end" "GST_SEEK_TYPE_END")
  )
)

(define-flags SeekFlags
  (in-module "Gst")
  (c-name "GstSeekFlags")
  (gtype-id "GST_TYPE_SEEK_FLAGS")
  (values
    '("none" "GST_SEEK_FLAG_NONE")
    '("flush" "GST_SEEK_FLAG_FLUSH")
    '("accurate" "GST_SEEK_FLAG_ACCURATE")
    '("key-unit" "GST_SEEK_FLAG_KEY_UNIT")
    '("segment" "GST_SEEK_FLAG_SEGMENT")
    '("trickmode" "GST_SEEK_FLAG_TRICKMODE")
    '("skip" "GST_SEEK_FLAG_SKIP")
    '("snap-before" "GST_SEEK_FLAG_SNAP_BEFORE")
    '("snap-after" "GST_SEEK_FLAG_SNAP_AFTER")
    '("snap-nearest" "GST_SEEK_FLAG_SNAP_NEAREST")
    '("trickmode-key-units" "GST_SEEK_FLAG_TRICKMODE_KEY_UNITS")
    '("trickmode-no-audio" "GST_SEEK_FLAG_TRICKMODE_NO_AUDIO")
  )
)

(define-enum SegmentFlags
  (in-module "Gst")
  (c-name "GstSegmentFlags")
  (gtype-id "GST_TYPE_SEGMENT_FLAGS")
  (values
    '("none" "GST_SEGMENT_FLAG_NONE")
    '("reset" "GST_SEGMENT_FLAG_RESET")
    '("trickmode" "GST_SEGMENT_FLAG_TRICKMODE")
    '("skip" "GST_SEGMENT_FLAG_SKIP")
    '("segment" "GST_SEGMENT_FLAG_SEGMENT")
    '("trickmode-key-units" "GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS")
    '("trickmode-no-audio" "GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO")
  )
)

(define-enum ClockType
  (in-module "Gst")
  (c-name "GstClockType")
  (gtype-id "GST_TYPE_CLOCK_TYPE")
  (values
    '("realtime" "GST_CLOCK_TYPE_REALTIME")
    '("monotonic" "GST_CLOCK_TYPE_MONOTONIC")
    '("other" "GST_CLOCK_TYPE_OTHER")
  )
)

(define-enum TagMergeMode
  (in-module "Gst")
  (c-name "GstTagMergeMode")
  (gtype-id "GST_TYPE_TAG_MERGE_MODE")
  (values
    '("undefined" "GST_TAG_MERGE_UNDEFINED")
    '("replace-all" "GST_TAG_MERGE_REPLACE_ALL")
    '("replace" "GST_TAG_MERGE_REPLACE")
    '("append" "GST_TAG_MERGE_APPEND")
    '("prepend" "GST_TAG_MERGE_PREPEND")
    '("keep" "GST_TAG_MERGE_KEEP")
    '("keep-all" "GST_TAG_MERGE_KEEP_ALL")
    '("count" "GST_TAG_MERGE_COUNT")
  )
)

(define-enum TagFlag
  (in-module "Gst")
  (c-name "GstTagFlag")
  (gtype-id "GST_TYPE_TAG_FLAG")
  (values
    '("undefined" "GST_TAG_FLAG_UNDEFINED")
    '("meta" "GST_TAG_FLAG_META")
    '("encoded" "GST_TAG_FLAG_ENCODED")
    '("decoded" "GST_TAG_FLAG_DECODED")
    '("count" "GST_TAG_FLAG_COUNT")
  )
)

(define-enum TagScope
  (in-module "Gst")
  (c-name "GstTagScope")
  (gtype-id "GST_TYPE_TAG_SCOPE")
  (values
    '("stream" "GST_TAG_SCOPE_STREAM")
    '("global" "GST_TAG_SCOPE_GLOBAL")
  )
)

(define-enum TaskState
  (in-module "Gst")
  (c-name "GstTaskState")
  (gtype-id "GST_TYPE_TASK_STATE")
  (values
    '("started" "GST_TASK_STARTED")
    '("stopped" "GST_TASK_STOPPED")
    '("paused" "GST_TASK_PAUSED")
  )
)

(define-enum TocScope
  (in-module "Gst")
  (c-name "GstTocScope")
  (gtype-id "GST_TYPE_TOC_SCOPE")
  (values
    '("global" "GST_TOC_SCOPE_GLOBAL")
    '("current" "GST_TOC_SCOPE_CURRENT")
  )
)

(define-enum TocEntryType
  (in-module "Gst")
  (c-name "GstTocEntryType")
  (gtype-id "GST_TYPE_TOC_ENTRY_TYPE")
  (values
    '("angle" "GST_TOC_ENTRY_TYPE_ANGLE")
    '("version" "GST_TOC_ENTRY_TYPE_VERSION")
    '("edition" "GST_TOC_ENTRY_TYPE_EDITION")
    '("invalid" "GST_TOC_ENTRY_TYPE_INVALID")
    '("title" "GST_TOC_ENTRY_TYPE_TITLE")
    '("track" "GST_TOC_ENTRY_TYPE_TRACK")
    '("chapter" "GST_TOC_ENTRY_TYPE_CHAPTER")
  )
)

(define-enum TocLoopType
  (in-module "Gst")
  (c-name "GstTocLoopType")
  (gtype-id "GST_TYPE_TOC_LOOP_TYPE")
  (values
    '("none" "GST_TOC_LOOP_NONE")
    '("forward" "GST_TOC_LOOP_FORWARD")
    '("reverse" "GST_TOC_LOOP_REVERSE")
    '("ping-pong" "GST_TOC_LOOP_PING_PONG")
  )
)

(define-flags AllocTraceFlags
  (in-module "Gst")
  (c-name "GstAllocTraceFlags")
  (gtype-id "GST_TYPE_ALLOC_TRACE_FLAGS")
  (values
    '("none" "GST_ALLOC_TRACE_NONE")
    '("live" "GST_ALLOC_TRACE_LIVE")
    '("mem-live" "GST_ALLOC_TRACE_MEM_LIVE")
  )
)

(define-enum TracerValueScope
  (in-module "Gst")
  (c-name "GstTracerValueScope")
  (gtype-id "GST_TYPE_TRACER_VALUE_SCOPE")
  (values
    '("process" "GST_TRACER_VALUE_SCOPE_PROCESS")
    '("thread" "GST_TRACER_VALUE_SCOPE_THREAD")
    '("element" "GST_TRACER_VALUE_SCOPE_ELEMENT")
    '("pad" "GST_TRACER_VALUE_SCOPE_PAD")
  )
)

(define-flags TracerValueFlags
  (in-module "Gst")
  (c-name "GstTracerValueFlags")
  (gtype-id "GST_TYPE_TRACER_VALUE_FLAGS")
  (values
    '("none" "GST_TRACER_VALUE_FLAGS_NONE")
    '("optional" "GST_TRACER_VALUE_FLAGS_OPTIONAL")
    '("aggregated" "GST_TRACER_VALUE_FLAGS_AGGREGATED")
  )
)

(define-enum TracerQuarkId
  (in-module "Gst")
  (c-name "GstTracerQuarkId")
  (gtype-id "GST_TYPE_TRACER_QUARK_ID")
  (values
    '("hook-pad-push-pre" "GST_TRACER_QUARK_HOOK_PAD_PUSH_PRE")
    '("hook-pad-push-post" "GST_TRACER_QUARK_HOOK_PAD_PUSH_POST")
    '("hook-pad-push-list-pre" "GST_TRACER_QUARK_HOOK_PAD_PUSH_LIST_PRE")
    '("hook-pad-push-list-post" "GST_TRACER_QUARK_HOOK_PAD_PUSH_LIST_POST")
    '("hook-pad-pull-range-pre" "GST_TRACER_QUARK_HOOK_PAD_PULL_RANGE_PRE")
    '("hook-pad-pull-range-post" "GST_TRACER_QUARK_HOOK_PAD_PULL_RANGE_POST")
    '("hook-pad-push-event-pre" "GST_TRACER_QUARK_HOOK_PAD_PUSH_EVENT_PRE")
    '("hook-pad-push-event-post" "GST_TRACER_QUARK_HOOK_PAD_PUSH_EVENT_POST")
    '("hook-pad-query-pre" "GST_TRACER_QUARK_HOOK_PAD_QUERY_PRE")
    '("hook-pad-query-post" "GST_TRACER_QUARK_HOOK_PAD_QUERY_POST")
    '("hook-element-post-message-pre" "GST_TRACER_QUARK_HOOK_ELEMENT_POST_MESSAGE_PRE")
    '("hook-element-post-message-post" "GST_TRACER_QUARK_HOOK_ELEMENT_POST_MESSAGE_POST")
    '("hook-element-query-pre" "GST_TRACER_QUARK_HOOK_ELEMENT_QUERY_PRE")
    '("hook-element-query-post" "GST_TRACER_QUARK_HOOK_ELEMENT_QUERY_POST")
    '("hook-element-new" "GST_TRACER_QUARK_HOOK_ELEMENT_NEW")
    '("hook-element-add-pad" "GST_TRACER_QUARK_HOOK_ELEMENT_ADD_PAD")
    '("hook-element-remove-pad" "GST_TRACER_QUARK_HOOK_ELEMENT_REMOVE_PAD")
    '("hook-bin-add-pre" "GST_TRACER_QUARK_HOOK_BIN_ADD_PRE")
    '("hook-bin-add-post" "GST_TRACER_QUARK_HOOK_BIN_ADD_POST")
    '("hook-bin-remove-pre" "GST_TRACER_QUARK_HOOK_BIN_REMOVE_PRE")
    '("hook-bin-remove-post" "GST_TRACER_QUARK_HOOK_BIN_REMOVE_POST")
    '("hook-pad-link-pre" "GST_TRACER_QUARK_HOOK_PAD_LINK_PRE")
    '("hook-pad-link-post" "GST_TRACER_QUARK_HOOK_PAD_LINK_POST")
    '("hook-pad-unlink-pre" "GST_TRACER_QUARK_HOOK_PAD_UNLINK_PRE")
    '("hook-pad-unlink-post" "GST_TRACER_QUARK_HOOK_PAD_UNLINK_POST")
    '("hook-element-change-state-pre" "GST_TRACER_QUARK_HOOK_ELEMENT_CHANGE_STATE_PRE")
    '("hook-element-change-state-post" "GST_TRACER_QUARK_HOOK_ELEMENT_CHANGE_STATE_POST")
    '("max" "GST_TRACER_QUARK_MAX")
  )
)

(define-enum TypeFindProbability
  (in-module "Gst")
  (c-name "GstTypeFindProbability")
  (gtype-id "GST_TYPE_TYPE_FIND_PROBABILITY")
  (values
    '("none" "GST_TYPE_FIND_NONE")
    '("minimum" "GST_TYPE_FIND_MINIMUM")
    '("possible" "GST_TYPE_FIND_POSSIBLE")
    '("likely" "GST_TYPE_FIND_LIKELY")
    '("nearly-certain" "GST_TYPE_FIND_NEARLY_CERTAIN")
    '("maximum" "GST_TYPE_FIND_MAXIMUM")
  )
)

(define-enum URIError
  (in-module "Gst")
  (c-name "GstURIError")
  (gtype-id "GST_TYPE_URI_ERROR")
  (values
    '("unsupported-protocol" "GST_URI_ERROR_UNSUPPORTED_PROTOCOL")
    '("bad-uri" "GST_URI_ERROR_BAD_URI")
    '("bad-state" "GST_URI_ERROR_BAD_STATE")
    '("bad-reference" "GST_URI_ERROR_BAD_REFERENCE")
  )
)

(define-enum URIType
  (in-module "Gst")
  (c-name "GstURIType")
  (gtype-id "GST_TYPE_URI_TYPE")
  (values
    '("unknown" "GST_URI_UNKNOWN")
    '("sink" "GST_URI_SINK")
    '("src" "GST_URI_SRC")
  )
)

(define-enum SearchMode
  (in-module "Gst")
  (c-name "GstSearchMode")
  (gtype-id "GST_TYPE_SEARCH_MODE")
  (values
    '("exact" "GST_SEARCH_MODE_EXACT")
    '("before" "GST_SEARCH_MODE_BEFORE")
    '("after" "GST_SEARCH_MODE_AFTER")
  )
)

(define-flags BaseParseFrameFlags
  (in-module "Gst")
  (c-name "GstBaseParseFrameFlags")
  (gtype-id "GST_TYPE_BASE_PARSE_FRAME_FLAGS")
  (values
    '("none" "GST_BASE_PARSE_FRAME_FLAG_NONE")
    '("new-frame" "GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME")
    '("no-frame" "GST_BASE_PARSE_FRAME_FLAG_NO_FRAME")
    '("clip" "GST_BASE_PARSE_FRAME_FLAG_CLIP")
    '("drop" "GST_BASE_PARSE_FRAME_FLAG_DROP")
    '("queue" "GST_BASE_PARSE_FRAME_FLAG_QUEUE")
  )
)

(define-flags BaseSrcFlags
  (in-module "Gst")
  (c-name "GstBaseSrcFlags")
  (gtype-id "GST_TYPE_BASE_SRC_FLAGS")
  (values
    '("starting" "GST_BASE_SRC_FLAG_STARTING")
    '("started" "GST_BASE_SRC_FLAG_STARTED")
    '("last" "GST_BASE_SRC_FLAG_LAST")
  )
)

(define-flags CollectPadsStateFlags
  (in-module "Gst")
  (c-name "GstCollectPadsStateFlags")
  (gtype-id "GST_TYPE_COLLECT_PADS_STATE_FLAGS")
  (values
    '("eos" "GST_COLLECT_PADS_STATE_EOS")
    '("flushing" "GST_COLLECT_PADS_STATE_FLUSHING")
    '("new-segment" "GST_COLLECT_PADS_STATE_NEW_SEGMENT")
    '("waiting" "GST_COLLECT_PADS_STATE_WAITING")
    '("locked" "GST_COLLECT_PADS_STATE_LOCKED")
  )
)

(define-enum IndexCertainty
  (in-module "Gst")
  (c-name "GstIndexCertainty")
  (gtype-id "GST_TYPE_INDEX_CERTAINTY")
  (values
    '("unknown" "GST_INDEX_UNKNOWN")
    '("certain" "GST_INDEX_CERTAIN")
    '("fuzzy" "GST_INDEX_FUZZY")
  )
)

(define-enum IndexEntryType
  (in-module "Gst")
  (c-name "GstIndexEntryType")
  (gtype-id "GST_TYPE_INDEX_ENTRY_TYPE")
  (values
    '("id" "GST_INDEX_ENTRY_ID")
    '("association" "GST_INDEX_ENTRY_ASSOCIATION")
    '("object" "GST_INDEX_ENTRY_OBJECT")
    '("format" "GST_INDEX_ENTRY_FORMAT")
  )
)

(define-enum IndexLookupMethod
  (in-module "Gst")
  (c-name "GstIndexLookupMethod")
  (gtype-id "GST_TYPE_INDEX_LOOKUP_METHOD")
  (values
    '("exact" "GST_INDEX_LOOKUP_EXACT")
    '("before" "GST_INDEX_LOOKUP_BEFORE")
    '("after" "GST_INDEX_LOOKUP_AFTER")
  )
)

(define-flags IndexAssociationFlags
  (in-module "Gst")
  (c-name "GstIndexAssociationFlags")
  (gtype-id "GST_TYPE_INDEX_ASSOCIATION_FLAGS")
  (values
    '("none" "GST_INDEX_ASSOCIATION_FLAG_NONE")
    '("key-unit" "GST_INDEX_ASSOCIATION_FLAG_KEY_UNIT")
    '("delta-unit" "GST_INDEX_ASSOCIATION_FLAG_DELTA_UNIT")
    '("last" "GST_INDEX_ASSOCIATION_FLAG_LAST")
  )
)

(define-enum IndexResolverMethod
  (in-module "Gst")
  (c-name "GstIndexResolverMethod")
  (gtype-id "GST_TYPE_INDEX_RESOLVER_METHOD")
  (values
    '("custom" "GST_INDEX_RESOLVER_CUSTOM")
    '("gtype" "GST_INDEX_RESOLVER_GTYPE")
    '("path" "GST_INDEX_RESOLVER_PATH")
  )
)

(define-flags IndexFlags
  (in-module "Gst")
  (c-name "GstIndexFlags")
  (gtype-id "GST_TYPE_INDEX_FLAGS")
  (values
    '("writable" "GST_INDEX_WRITABLE")
    '("readable" "GST_INDEX_READABLE")
    '("flag-last" "GST_INDEX_FLAG_LAST")
  )
)

(define-enum InterpolationMode
  (in-module "Gst")
  (c-name "GstInterpolationMode")
  (gtype-id "GST_TYPE_INTERPOLATION_MODE")
  (values
    '("none" "GST_INTERPOLATION_MODE_NONE")
    '("linear" "GST_INTERPOLATION_MODE_LINEAR")
    '("cubic" "GST_INTERPOLATION_MODE_CUBIC")
    '("cubic-monotonic" "GST_INTERPOLATION_MODE_CUBIC_MONOTONIC")
  )
)

(define-enum LFOWaveform
  (in-module "Gst")
  (c-name "GstLFOWaveform")
  (gtype-id "GST_TYPE_LFO_WAVEFORM")
  (values
    '("sine" "GST_LFO_WAVEFORM_SINE")
    '("square" "GST_LFO_WAVEFORM_SQUARE")
    '("saw" "GST_LFO_WAVEFORM_SAW")
    '("reverse-saw" "GST_LFO_WAVEFORM_REVERSE_SAW")
    '("triangle" "GST_LFO_WAVEFORM_TRIANGLE")
  )
)


;; From gettext.h



;; From glib-compat.h



;; From glib-compat-private.h



;; From gstallocator.h

(define-function gst_allocation_params_get_type
  (c-name "gst_allocation_params_get_type")
  (return-type "GType")
)

(define-function gst_allocator_get_type
  (c-name "gst_allocator_get_type")
  (return-type "GType")
)

(define-function gst_allocator_register
  (c-name "gst_allocator_register")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("GstAllocator*" "allocator")
  )
)

(define-function gst_allocator_find
  (c-name "gst_allocator_find")
  (return-type "GstAllocator*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_default
  (of-object "GstAllocator")
  (c-name "gst_allocator_set_default")
  (return-type "none")
)

(define-method init
  (of-object "GstAllocationParams")
  (c-name "gst_allocation_params_init")
  (return-type "none")
)

(define-method copy
  (of-object "GstAllocationParams")
  (c-name "gst_allocation_params_copy")
  (return-type "GstAllocationParams*")
)

(define-method free
  (of-object "GstAllocationParams")
  (c-name "gst_allocation_params_free")
  (return-type "none")
)

(define-method alloc
  (of-object "GstAllocator")
  (c-name "gst_allocator_alloc")
  (return-type "GstMemory*")
  (parameters
    '("gsize" "size")
    '("GstAllocationParams*" "params")
  )
)

(define-method free
  (of-object "GstAllocator")
  (c-name "gst_allocator_free")
  (return-type "none")
  (parameters
    '("GstMemory*" "memory")
  )
)

(define-function gst_memory_new_wrapped
  (c-name "gst_memory_new_wrapped")
  (return-type "GstMemory*")
  (parameters
    '("GstMemoryFlags" "flags")
    '("gpointer" "data")
    '("gsize" "maxsize")
    '("gsize" "offset")
    '("gsize" "size")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)



;; From gstatomicqueue.h

(define-function gst_atomic_queue_get_type
  (c-name "gst_atomic_queue_get_type")
  (return-type "GType")
)

(define-function gst_atomic_queue_new
  (c-name "gst_atomic_queue_new")
  (is-constructor-of "GstAtomicQueue")
  (return-type "GstAtomicQueue*")
  (parameters
    '("guint" "initial_size")
  )
)

(define-method ref
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_ref")
  (return-type "none")
)

(define-method unref
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_unref")
  (return-type "none")
)

(define-method push
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_push")
  (return-type "none")
  (parameters
    '("gpointer" "data")
  )
)

(define-method pop
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_pop")
  (return-type "gpointer")
)

(define-method peek
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_peek")
  (return-type "gpointer")
)

(define-method length
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_length")
  (return-type "guint")
)



;; From gstbin.h

(define-function gst_bin_get_type
  (c-name "gst_bin_get_type")
  (return-type "GType")
)

(define-function gst_bin_new
  (c-name "gst_bin_new")
  (is-constructor-of "GstBin")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method add
  (of-object "GstBin")
  (c-name "gst_bin_add")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
  )
)

(define-method remove
  (of-object "GstBin")
  (c-name "gst_bin_remove")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
  )
)

(define-method get_by_name
  (of-object "GstBin")
  (c-name "gst_bin_get_by_name")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_by_name_recurse_up
  (of-object "GstBin")
  (c-name "gst_bin_get_by_name_recurse_up")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_by_interface
  (of-object "GstBin")
  (c-name "gst_bin_get_by_interface")
  (return-type "GstElement*")
  (parameters
    '("GType" "iface")
  )
)

(define-method iterate_elements
  (of-object "GstBin")
  (c-name "gst_bin_iterate_elements")
  (return-type "GstIterator*")
)

(define-method iterate_sorted
  (of-object "GstBin")
  (c-name "gst_bin_iterate_sorted")
  (return-type "GstIterator*")
)

(define-method iterate_recurse
  (of-object "GstBin")
  (c-name "gst_bin_iterate_recurse")
  (return-type "GstIterator*")
)

(define-method iterate_sinks
  (of-object "GstBin")
  (c-name "gst_bin_iterate_sinks")
  (return-type "GstIterator*")
)

(define-method iterate_sources
  (of-object "GstBin")
  (c-name "gst_bin_iterate_sources")
  (return-type "GstIterator*")
)

(define-method iterate_all_by_interface
  (of-object "GstBin")
  (c-name "gst_bin_iterate_all_by_interface")
  (return-type "GstIterator*")
  (parameters
    '("GType" "iface")
  )
)

(define-method recalculate_latency
  (of-object "GstBin")
  (c-name "gst_bin_recalculate_latency")
  (return-type "gboolean")
)



;; From gstbuffer.h

(define-function gst_buffer_get_type
  (c-name "gst_buffer_get_type")
  (return-type "GType")
)

(define-function gst_buffer_get_max_memory
  (c-name "gst_buffer_get_max_memory")
  (return-type "guint")
)

(define-function gst_buffer_new
  (c-name "gst_buffer_new")
  (is-constructor-of "GstBuffer")
  (return-type "GstBuffer*")
)

(define-function gst_buffer_new_allocate
  (c-name "gst_buffer_new_allocate")
  (return-type "GstBuffer*")
  (parameters
    '("GstAllocator*" "allocator")
    '("gsize" "size")
    '("GstAllocationParams*" "params")
  )
)

(define-function gst_buffer_new_wrapped_full
  (c-name "gst_buffer_new_wrapped_full")
  (return-type "GstBuffer*")
  (parameters
    '("GstMemoryFlags" "flags")
    '("gpointer" "data")
    '("gsize" "maxsize")
    '("gsize" "offset")
    '("gsize" "size")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-function gst_buffer_new_wrapped
  (c-name "gst_buffer_new_wrapped")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("gsize" "size")
  )
)

(define-method n_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_n_memory")
  (return-type "guint")
)

(define-method insert_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_insert_memory")
  (return-type "none")
  (parameters
    '("gint" "idx")
    '("GstMemory*" "mem")
  )
)

(define-method replace_memory_range
  (of-object "GstBuffer")
  (c-name "gst_buffer_replace_memory_range")
  (return-type "none")
  (parameters
    '("guint" "idx")
    '("gint" "length")
    '("GstMemory*" "mem")
  )
)

(define-method peek_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_peek_memory")
  (return-type "GstMemory*")
  (parameters
    '("guint" "idx")
  )
)

(define-method get_memory_range
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_memory_range")
  (return-type "GstMemory*")
  (parameters
    '("guint" "idx")
    '("gint" "length")
  )
)

(define-method remove_memory_range
  (of-object "GstBuffer")
  (c-name "gst_buffer_remove_memory_range")
  (return-type "none")
  (parameters
    '("guint" "idx")
    '("gint" "length")
  )
)

(define-method prepend_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_prepend_memory")
  (return-type "none")
  (parameters
    '("GstMemory*" "mem")
  )
)

(define-method append_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_append_memory")
  (return-type "none")
  (parameters
    '("GstMemory*" "mem")
  )
)

(define-method replace_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_replace_memory")
  (return-type "none")
  (parameters
    '("guint" "idx")
    '("GstMemory*" "mem")
  )
)

(define-method replace_all_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_replace_all_memory")
  (return-type "none")
  (parameters
    '("GstMemory*" "mem")
  )
)

(define-method get_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_memory")
  (return-type "GstMemory*")
  (parameters
    '("guint" "idx")
  )
)

(define-method get_all_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_all_memory")
  (return-type "GstMemory*")
)

(define-method remove_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_remove_memory")
  (return-type "none")
  (parameters
    '("guint" "idx")
  )
)

(define-method remove_all_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_remove_all_memory")
  (return-type "none")
)

(define-method find_memory
  (of-object "GstBuffer")
  (c-name "gst_buffer_find_memory")
  (return-type "gboolean")
  (parameters
    '("gsize" "offset")
    '("gsize" "size")
    '("guint*" "idx")
    '("guint*" "length")
    '("gsize*" "skip")
  )
)

(define-method is_memory_range_writable
  (of-object "GstBuffer")
  (c-name "gst_buffer_is_memory_range_writable")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
    '("gint" "length")
  )
)

(define-method is_all_memory_writable
  (of-object "GstBuffer")
  (c-name "gst_buffer_is_all_memory_writable")
  (return-type "gboolean")
)

(define-method fill
  (of-object "GstBuffer")
  (c-name "gst_buffer_fill")
  (return-type "gsize")
  (parameters
    '("gsize" "offset")
    '("gconstpointer" "src")
    '("gsize" "size")
  )
)

(define-method extract
  (of-object "GstBuffer")
  (c-name "gst_buffer_extract")
  (return-type "gsize")
  (parameters
    '("gsize" "offset")
    '("gpointer" "dest")
    '("gsize" "size")
  )
)

(define-method memcmp
  (of-object "GstBuffer")
  (c-name "gst_buffer_memcmp")
  (return-type "gint")
  (parameters
    '("gsize" "offset")
    '("gconstpointer" "mem")
    '("gsize" "size")
  )
)

(define-method memset
  (of-object "GstBuffer")
  (c-name "gst_buffer_memset")
  (return-type "gsize")
  (parameters
    '("gsize" "offset")
    '("guint8" "val")
    '("gsize" "size")
  )
)

(define-method get_sizes_range
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_sizes_range")
  (return-type "gsize")
  (parameters
    '("guint" "idx")
    '("gint" "length")
    '("gsize*" "offset")
    '("gsize*" "maxsize")
  )
)

(define-method resize_range
  (of-object "GstBuffer")
  (c-name "gst_buffer_resize_range")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
    '("gint" "length")
    '("gssize" "offset")
    '("gssize" "size")
  )
)

(define-method get_sizes
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_sizes")
  (return-type "gsize")
  (parameters
    '("gsize*" "offset")
    '("gsize*" "maxsize")
  )
)

(define-method get_size
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_size")
  (return-type "gsize")
)

(define-method resize
  (of-object "GstBuffer")
  (c-name "gst_buffer_resize")
  (return-type "none")
  (parameters
    '("gssize" "offset")
    '("gssize" "size")
  )
)

(define-method set_size
  (of-object "GstBuffer")
  (c-name "gst_buffer_set_size")
  (return-type "none")
  (parameters
    '("gssize" "size")
  )
)

(define-method map_range
  (of-object "GstBuffer")
  (c-name "gst_buffer_map_range")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
    '("gint" "length")
    '("GstMapInfo*" "info")
    '("GstMapFlags" "flags")
  )
)

(define-method map
  (of-object "GstBuffer")
  (c-name "gst_buffer_map")
  (return-type "gboolean")
  (parameters
    '("GstMapInfo*" "info")
    '("GstMapFlags" "flags")
  )
)

(define-method unmap
  (of-object "GstBuffer")
  (c-name "gst_buffer_unmap")
  (return-type "none")
  (parameters
    '("GstMapInfo*" "info")
  )
)

(define-method extract_dup
  (of-object "GstBuffer")
  (c-name "gst_buffer_extract_dup")
  (return-type "none")
  (parameters
    '("gsize" "offset")
    '("gsize" "size")
    '("gpointer*" "dest")
    '("gsize*" "dest_size")
  )
)

(define-method ref
  (of-object "GstBuffer")
  (c-name "gst_buffer_ref")
  (return-type "GstBuffer*")
)

(define-method unref
  (of-object "GstBuffer")
  (c-name "gst_buffer_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstBuffer")
  (c-name "gst_buffer_copy")
  (return-type "GstBuffer*")
)

(define-method copy_deep
  (of-object "GstBuffer")
  (c-name "gst_buffer_copy_deep")
  (return-type "GstBuffer*")
)

(define-method copy_into
  (of-object "GstBuffer")
  (c-name "gst_buffer_copy_into")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "src")
    '("GstBufferCopyFlags" "flags")
    '("gsize" "offset")
    '("gsize" "size")
  )
)

(define-function gst_buffer_replace
  (c-name "gst_buffer_replace")
  (return-type "gboolean")
  (parameters
    '("GstBuffer**" "obuf")
    '("GstBuffer*" "nbuf")
  )
)

(define-method copy_region
  (of-object "GstBuffer")
  (c-name "gst_buffer_copy_region")
  (return-type "GstBuffer*")
  (parameters
    '("GstBufferCopyFlags" "flags")
    '("gsize" "offset")
    '("gsize" "size")
  )
)

(define-method append_region
  (of-object "GstBuffer")
  (c-name "gst_buffer_append_region")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buf2")
    '("gssize" "offset")
    '("gssize" "size")
  )
)

(define-method append
  (of-object "GstBuffer")
  (c-name "gst_buffer_append")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buf2")
  )
)

(define-method get_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_meta")
  (return-type "GstMeta*")
  (parameters
    '("GType" "api")
  )
)

(define-method add_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_meta")
  (return-type "GstMeta*")
  (parameters
    '("const-GstMetaInfo*" "info")
    '("gpointer" "params")
  )
)

(define-method remove_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_remove_meta")
  (return-type "gboolean")
  (parameters
    '("GstMeta*" "meta")
  )
)

(define-method iterate_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_iterate_meta")
  (return-type "GstMeta*")
  (parameters
    '("gpointer*" "state")
  )
)

(define-method foreach_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_foreach_meta")
  (return-type "gboolean")
  (parameters
    '("GstBufferForeachMetaFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-function gst_parent_buffer_meta_api_get_type
  (c-name "gst_parent_buffer_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_parent_buffer_meta_get_info
  (c-name "gst_parent_buffer_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_parent_buffer_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_parent_buffer_meta")
  (return-type "GstParentBufferMeta*")
  (parameters
    '("GstBuffer*" "ref")
  )
)



;; From gstbufferlist.h

(define-method ref
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_ref")
  (return-type "GstBufferList*")
)

(define-method unref
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_copy")
  (return-type "GstBufferList*")
)

(define-function gst_buffer_list_get_type
  (c-name "gst_buffer_list_get_type")
  (return-type "GType")
)

(define-function gst_buffer_list_new
  (c-name "gst_buffer_list_new")
  (is-constructor-of "GstBufferList")
  (return-type "GstBufferList*")
)

(define-function gst_buffer_list_new_sized
  (c-name "gst_buffer_list_new_sized")
  (return-type "GstBufferList*")
  (parameters
    '("guint" "size")
  )
)

(define-method length
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_length")
  (return-type "guint")
)

(define-method get
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_get")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_insert")
  (return-type "none")
  (parameters
    '("gint" "idx")
    '("GstBuffer*" "buffer")
  )
)

(define-method remove
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_remove")
  (return-type "none")
  (parameters
    '("guint" "idx")
    '("guint" "length")
  )
)

(define-method foreach
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_foreach")
  (return-type "gboolean")
  (parameters
    '("GstBufferListFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method copy_deep
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_copy_deep")
  (return-type "GstBufferList*")
)



;; From gstbufferpool.h

(define-function gst_buffer_pool_get_type
  (c-name "gst_buffer_pool_get_type")
  (return-type "GType")
)

(define-function gst_buffer_pool_new
  (c-name "gst_buffer_pool_new")
  (is-constructor-of "GstBufferPool")
  (return-type "GstBufferPool*")
)

(define-method set_active
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_set_active")
  (return-type "gboolean")
  (parameters
    '("gboolean" "active")
  )
)

(define-method is_active
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_is_active")
  (return-type "gboolean")
)

(define-method set_config
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_set_config")
  (return-type "gboolean")
  (parameters
    '("GstStructure*" "config")
  )
)

(define-method get_config
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_get_config")
  (return-type "GstStructure*")
)

(define-method get_options
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_get_options")
  (return-type "const-gchar**")
)

(define-method has_option
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_has_option")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "option")
  )
)

(define-method set_flushing
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-function gst_buffer_pool_config_set_params
  (c-name "gst_buffer_pool_config_set_params")
  (return-type "none")
  (parameters
    '("GstStructure*" "config")
    '("GstCaps*" "caps")
    '("guint" "size")
    '("guint" "min_buffers")
    '("guint" "max_buffers")
  )
)

(define-function gst_buffer_pool_config_get_params
  (c-name "gst_buffer_pool_config_get_params")
  (return-type "gboolean")
  (parameters
    '("GstStructure*" "config")
    '("GstCaps**" "caps")
    '("guint*" "size")
    '("guint*" "min_buffers")
    '("guint*" "max_buffers")
  )
)

(define-function gst_buffer_pool_config_set_allocator
  (c-name "gst_buffer_pool_config_set_allocator")
  (return-type "none")
  (parameters
    '("GstStructure*" "config")
    '("GstAllocator*" "allocator")
    '("const-GstAllocationParams*" "params")
  )
)

(define-function gst_buffer_pool_config_get_allocator
  (c-name "gst_buffer_pool_config_get_allocator")
  (return-type "gboolean")
  (parameters
    '("GstStructure*" "config")
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)

(define-function gst_buffer_pool_config_n_options
  (c-name "gst_buffer_pool_config_n_options")
  (return-type "guint")
  (parameters
    '("GstStructure*" "config")
  )
)

(define-function gst_buffer_pool_config_add_option
  (c-name "gst_buffer_pool_config_add_option")
  (return-type "none")
  (parameters
    '("GstStructure*" "config")
    '("const-gchar*" "option")
  )
)

(define-function gst_buffer_pool_config_get_option
  (c-name "gst_buffer_pool_config_get_option")
  (return-type "const-gchar*")
  (parameters
    '("GstStructure*" "config")
    '("guint" "index")
  )
)

(define-function gst_buffer_pool_config_has_option
  (c-name "gst_buffer_pool_config_has_option")
  (return-type "gboolean")
  (parameters
    '("GstStructure*" "config")
    '("const-gchar*" "option")
  )
)

(define-function gst_buffer_pool_config_validate_params
  (c-name "gst_buffer_pool_config_validate_params")
  (return-type "gboolean")
  (parameters
    '("GstStructure*" "config")
    '("GstCaps*" "caps")
    '("guint" "size")
    '("guint" "min_buffers")
    '("guint" "max_buffers")
  )
)

(define-method acquire_buffer
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_acquire_buffer")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer**" "buffer")
    '("GstBufferPoolAcquireParams*" "params")
  )
)

(define-method release_buffer
  (of-object "GstBufferPool")
  (c-name "gst_buffer_pool_release_buffer")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
  )
)



;; From gstbus.h

(define-function gst_bus_get_type
  (c-name "gst_bus_get_type")
  (return-type "GType")
)

(define-function gst_bus_new
  (c-name "gst_bus_new")
  (is-constructor-of "GstBus")
  (return-type "GstBus*")
)

(define-method post
  (of-object "GstBus")
  (c-name "gst_bus_post")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
  )
)

(define-method have_pending
  (of-object "GstBus")
  (c-name "gst_bus_have_pending")
  (return-type "gboolean")
)

(define-method peek
  (of-object "GstBus")
  (c-name "gst_bus_peek")
  (return-type "GstMessage*")
)

(define-method pop
  (of-object "GstBus")
  (c-name "gst_bus_pop")
  (return-type "GstMessage*")
)

(define-method pop_filtered
  (of-object "GstBus")
  (c-name "gst_bus_pop_filtered")
  (return-type "GstMessage*")
  (parameters
    '("GstMessageType" "types")
  )
)

(define-method timed_pop
  (of-object "GstBus")
  (c-name "gst_bus_timed_pop")
  (return-type "GstMessage*")
  (parameters
    '("GstClockTime" "timeout")
  )
)

(define-method timed_pop_filtered
  (of-object "GstBus")
  (c-name "gst_bus_timed_pop_filtered")
  (return-type "GstMessage*")
  (parameters
    '("GstClockTime" "timeout")
    '("GstMessageType" "types")
  )
)

(define-method set_flushing
  (of-object "GstBus")
  (c-name "gst_bus_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method set_sync_handler
  (of-object "GstBus")
  (c-name "gst_bus_set_sync_handler")
  (return-type "none")
  (parameters
    '("GstBusSyncHandler" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method create_watch
  (of-object "GstBus")
  (c-name "gst_bus_create_watch")
  (return-type "GSource*")
)

(define-method add_watch_full
  (of-object "GstBus")
  (c-name "gst_bus_add_watch_full")
  (return-type "guint")
  (parameters
    '("gint" "priority")
    '("GstBusFunc" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method add_watch
  (of-object "GstBus")
  (c-name "gst_bus_add_watch")
  (return-type "guint")
  (parameters
    '("GstBusFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method remove_watch
  (of-object "GstBus")
  (c-name "gst_bus_remove_watch")
  (return-type "gboolean")
)

(define-method poll
  (of-object "GstBus")
  (c-name "gst_bus_poll")
  (return-type "GstMessage*")
  (parameters
    '("GstMessageType" "events")
    '("GstClockTime" "timeout")
  )
)

(define-method async_signal_func
  (of-object "GstBus")
  (c-name "gst_bus_async_signal_func")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
    '("gpointer" "data")
  )
)

(define-method sync_signal_handler
  (of-object "GstBus")
  (c-name "gst_bus_sync_signal_handler")
  (return-type "GstBusSyncReply")
  (parameters
    '("GstMessage*" "message")
    '("gpointer" "data")
  )
)

(define-method add_signal_watch
  (of-object "GstBus")
  (c-name "gst_bus_add_signal_watch")
  (return-type "none")
)

(define-method add_signal_watch_full
  (of-object "GstBus")
  (c-name "gst_bus_add_signal_watch_full")
  (return-type "none")
  (parameters
    '("gint" "priority")
  )
)

(define-method remove_signal_watch
  (of-object "GstBus")
  (c-name "gst_bus_remove_signal_watch")
  (return-type "none")
)

(define-method enable_sync_message_emission
  (of-object "GstBus")
  (c-name "gst_bus_enable_sync_message_emission")
  (return-type "none")
)

(define-method disable_sync_message_emission
  (of-object "GstBus")
  (c-name "gst_bus_disable_sync_message_emission")
  (return-type "none")
)



;; From gstcapsfeatures.h

(define-function gst_caps_features_get_type
  (c-name "gst_caps_features_get_type")
  (return-type "GType")
)

(define-function gst_is_caps_features
  (c-name "gst_is_caps_features")
  (return-type "gboolean")
  (parameters
    '("gconstpointer" "obj")
  )
)

(define-function gst_caps_features_new_empty
  (c-name "gst_caps_features_new_empty")
  (return-type "GstCapsFeatures*")
)

(define-function gst_caps_features_new_any
  (c-name "gst_caps_features_new_any")
  (return-type "GstCapsFeatures*")
)

(define-function gst_caps_features_new
  (c-name "gst_caps_features_new")
  (is-constructor-of "GstCapsFeatures")
  (return-type "GstCapsFeatures*")
  (parameters
    '("const-gchar*" "feature1")
  )
  (varargs #t)
)

(define-function gst_caps_features_new_valist
  (c-name "gst_caps_features_new_valist")
  (return-type "GstCapsFeatures*")
  (parameters
    '("const-gchar*" "feature1")
    '("va_list" "varargs")
  )
)

(define-function gst_caps_features_new_id
  (c-name "gst_caps_features_new_id")
  (return-type "GstCapsFeatures*")
  (parameters
    '("GQuark" "feature1")
  )
  (varargs #t)
)

(define-function gst_caps_features_new_id_valist
  (c-name "gst_caps_features_new_id_valist")
  (return-type "GstCapsFeatures*")
  (parameters
    '("GQuark" "feature1")
    '("va_list" "varargs")
  )
)

(define-method set_parent_refcount
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_set_parent_refcount")
  (return-type "gboolean")
  (parameters
    '("gint*" "refcount")
  )
)

(define-method copy
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_copy")
  (return-type "GstCapsFeatures*")
)

(define-method free
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_free")
  (return-type "none")
)

(define-method to_string
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_to_string")
  (return-type "gchar*")
)

(define-function gst_caps_features_from_string
  (c-name "gst_caps_features_from_string")
  (return-type "GstCapsFeatures*")
  (parameters
    '("const-gchar*" "features")
  )
)

(define-method get_size
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_get_size")
  (return-type "guint")
)

(define-method get_nth
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_get_nth")
  (return-type "const-gchar*")
  (parameters
    '("guint" "i")
  )
)

(define-method get_nth_id
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_get_nth_id")
  (return-type "GQuark")
  (parameters
    '("guint" "i")
  )
)

(define-method contains
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_contains")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "feature")
  )
)

(define-method contains_id
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_contains_id")
  (return-type "gboolean")
  (parameters
    '("GQuark" "feature")
  )
)

(define-method is_equal
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstCapsFeatures*" "features2")
  )
)

(define-method is_any
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_is_any")
  (return-type "gboolean")
)

(define-method add
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_add")
  (return-type "none")
  (parameters
    '("const-gchar*" "feature")
  )
)

(define-method add_id
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_add_id")
  (return-type "none")
  (parameters
    '("GQuark" "feature")
  )
)

(define-method remove
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_remove")
  (return-type "none")
  (parameters
    '("const-gchar*" "feature")
  )
)

(define-method remove_id
  (of-object "GstCapsFeatures")
  (c-name "gst_caps_features_remove_id")
  (return-type "none")
  (parameters
    '("GQuark" "feature")
  )
)



;; From gstcaps.h

(define-method ref
  (of-object "GstCaps")
  (c-name "gst_caps_ref")
  (return-type "GstCaps*")
)

(define-method unref
  (of-object "GstCaps")
  (c-name "gst_caps_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstCaps")
  (c-name "gst_caps_copy")
  (return-type "GstCaps*")
)

(define-function gst_caps_replace
  (c-name "gst_caps_replace")
  (return-type "gboolean")
  (parameters
    '("GstCaps**" "old_caps")
    '("GstCaps*" "new_caps")
  )
)

(define-function gst_caps_take
  (c-name "gst_caps_take")
  (return-type "gboolean")
  (parameters
    '("GstCaps**" "old_caps")
    '("GstCaps*" "new_caps")
  )
)

(define-function gst_caps_get_type
  (c-name "gst_caps_get_type")
  (return-type "GType")
)

(define-function gst_caps_new_empty
  (c-name "gst_caps_new_empty")
  (return-type "GstCaps*")
)

(define-function gst_caps_new_any
  (c-name "gst_caps_new_any")
  (return-type "GstCaps*")
)

(define-function gst_caps_new_empty_simple
  (c-name "gst_caps_new_empty_simple")
  (return-type "GstCaps*")
  (parameters
    '("const-char*" "media_type")
  )
)

(define-function gst_caps_new_simple
  (c-name "gst_caps_new_simple")
  (return-type "GstCaps*")
  (parameters
    '("const-char*" "media_type")
    '("const-char*" "fieldname")
  )
  (varargs #t)
)

(define-function gst_caps_new_full
  (c-name "gst_caps_new_full")
  (return-type "GstCaps*")
  (parameters
    '("GstStructure*" "struct1")
  )
  (varargs #t)
)

(define-function gst_caps_new_full_valist
  (c-name "gst_caps_new_full_valist")
  (return-type "GstCaps*")
  (parameters
    '("GstStructure*" "structure")
    '("va_list" "var_args")
  )
)

(define-function gst_static_caps_get_type
  (c-name "gst_static_caps_get_type")
  (return-type "GType")
)

(define-method get
  (of-object "GstStaticCaps")
  (c-name "gst_static_caps_get")
  (return-type "GstCaps*")
)

(define-method cleanup
  (of-object "GstStaticCaps")
  (c-name "gst_static_caps_cleanup")
  (return-type "none")
)

(define-method append
  (of-object "GstCaps")
  (c-name "gst_caps_append")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps2")
  )
)

(define-method append_structure
  (of-object "GstCaps")
  (c-name "gst_caps_append_structure")
  (return-type "none")
  (parameters
    '("GstStructure*" "structure")
  )
)

(define-method append_structure_full
  (of-object "GstCaps")
  (c-name "gst_caps_append_structure_full")
  (return-type "none")
  (parameters
    '("GstStructure*" "structure")
    '("GstCapsFeatures*" "features")
  )
)

(define-method remove_structure
  (of-object "GstCaps")
  (c-name "gst_caps_remove_structure")
  (return-type "none")
  (parameters
    '("guint" "idx")
  )
)

(define-method merge
  (of-object "GstCaps")
  (c-name "gst_caps_merge")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "caps2")
  )
)

(define-method merge_structure
  (of-object "GstCaps")
  (c-name "gst_caps_merge_structure")
  (return-type "GstCaps*")
  (parameters
    '("GstStructure*" "structure")
  )
)

(define-method merge_structure_full
  (of-object "GstCaps")
  (c-name "gst_caps_merge_structure_full")
  (return-type "GstCaps*")
  (parameters
    '("GstStructure*" "structure")
    '("GstCapsFeatures*" "features")
  )
)

(define-method get_size
  (of-object "GstCaps")
  (c-name "gst_caps_get_size")
  (return-type "guint")
)

(define-method get_structure
  (of-object "GstCaps")
  (c-name "gst_caps_get_structure")
  (return-type "GstStructure*")
  (parameters
    '("guint" "index")
  )
)

(define-method steal_structure
  (of-object "GstCaps")
  (c-name "gst_caps_steal_structure")
  (return-type "GstStructure*")
  (parameters
    '("guint" "index")
  )
)

(define-method set_features
  (of-object "GstCaps")
  (c-name "gst_caps_set_features")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("GstCapsFeatures*" "features")
  )
)

(define-method get_features
  (of-object "GstCaps")
  (c-name "gst_caps_get_features")
  (return-type "GstCapsFeatures*")
  (parameters
    '("guint" "index")
  )
)

(define-method copy_nth
  (of-object "GstCaps")
  (c-name "gst_caps_copy_nth")
  (return-type "GstCaps*")
  (parameters
    '("guint" "nth")
  )
)

(define-method truncate
  (of-object "GstCaps")
  (c-name "gst_caps_truncate")
  (return-type "GstCaps*")
)

(define-method set_value
  (of-object "GstCaps")
  (c-name "gst_caps_set_value")
  (return-type "none")
  (parameters
    '("const-char*" "field")
    '("const-GValue*" "value")
  )
)

(define-method set_simple
  (of-object "GstCaps")
  (c-name "gst_caps_set_simple")
  (return-type "none")
  (parameters
    '("const-char*" "field")
  )
  (varargs #t)
)

(define-method set_simple_valist
  (of-object "GstCaps")
  (c-name "gst_caps_set_simple_valist")
  (return-type "none")
  (parameters
    '("const-char*" "field")
    '("va_list" "varargs")
  )
)

(define-method foreach
  (of-object "GstCaps")
  (c-name "gst_caps_foreach")
  (return-type "gboolean")
  (parameters
    '("GstCapsForeachFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method map_in_place
  (of-object "GstCaps")
  (c-name "gst_caps_map_in_place")
  (return-type "gboolean")
  (parameters
    '("GstCapsMapFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method filter_and_map_in_place
  (of-object "GstCaps")
  (c-name "gst_caps_filter_and_map_in_place")
  (return-type "none")
  (parameters
    '("GstCapsFilterMapFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method is_any
  (of-object "GstCaps")
  (c-name "gst_caps_is_any")
  (return-type "gboolean")
)

(define-method is_empty
  (of-object "GstCaps")
  (c-name "gst_caps_is_empty")
  (return-type "gboolean")
)

(define-method is_fixed
  (of-object "GstCaps")
  (c-name "gst_caps_is_fixed")
  (return-type "gboolean")
)

(define-method is_always_compatible
  (of-object "GstCaps")
  (c-name "gst_caps_is_always_compatible")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method is_subset
  (of-object "GstCaps")
  (c-name "gst_caps_is_subset")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "superset")
  )
)

(define-method is_subset_structure
  (of-object "GstCaps")
  (c-name "gst_caps_is_subset_structure")
  (return-type "gboolean")
  (parameters
    '("const-GstStructure*" "structure")
  )
)

(define-method is_subset_structure_full
  (of-object "GstCaps")
  (c-name "gst_caps_is_subset_structure_full")
  (return-type "gboolean")
  (parameters
    '("const-GstStructure*" "structure")
    '("const-GstCapsFeatures*" "features")
  )
)

(define-method is_equal
  (of-object "GstCaps")
  (c-name "gst_caps_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method is_equal_fixed
  (of-object "GstCaps")
  (c-name "gst_caps_is_equal_fixed")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method can_intersect
  (of-object "GstCaps")
  (c-name "gst_caps_can_intersect")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method is_strictly_equal
  (of-object "GstCaps")
  (c-name "gst_caps_is_strictly_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method intersect
  (of-object "GstCaps")
  (c-name "gst_caps_intersect")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "caps2")
  )
)

(define-method intersect_full
  (of-object "GstCaps")
  (c-name "gst_caps_intersect_full")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "caps2")
    '("GstCapsIntersectMode" "mode")
  )
)

(define-method subtract
  (of-object "GstCaps")
  (c-name "gst_caps_subtract")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "subtrahend")
  )
)

(define-method normalize
  (of-object "GstCaps")
  (c-name "gst_caps_normalize")
  (return-type "GstCaps*")
)

(define-method simplify
  (of-object "GstCaps")
  (c-name "gst_caps_simplify")
  (return-type "GstCaps*")
)

(define-method fixate
  (of-object "GstCaps")
  (c-name "gst_caps_fixate")
  (return-type "GstCaps*")
)

(define-method to_string
  (of-object "GstCaps")
  (c-name "gst_caps_to_string")
  (return-type "gchar*")
)

(define-function gst_caps_from_string
  (c-name "gst_caps_from_string")
  (return-type "GstCaps*")
  (parameters
    '("const-gchar*" "string")
  )
)



;; From gstchildproxy.h

(define-function gst_child_proxy_get_type
  (c-name "gst_child_proxy_get_type")
  (return-type "GType")
)

(define-method get_child_by_name
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get_child_by_name")
  (return-type "GObject*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_children_count
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get_children_count")
  (return-type "guint")
)

(define-method get_child_by_index
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get_child_by_index")
  (return-type "GObject*")
  (parameters
    '("guint" "index")
  )
)

(define-method lookup
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_lookup")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
    '("GObject**" "target")
    '("GParamSpec**" "pspec")
  )
)

(define-method get_property
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get_property")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("GValue*" "value")
  )
)

(define-method get_valist
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get_valist")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_property_name")
    '("va_list" "var_args")
  )
)

(define-method get
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-method set_property
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_set_property")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("const-GValue*" "value")
  )
)

(define-method set_valist
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_set_valist")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_property_name")
    '("va_list" "var_args")
  )
)

(define-method set
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_set")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-method child_added
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_child_added")
  (return-type "none")
  (parameters
    '("GObject*" "child")
    '("const-gchar*" "name")
  )
)

(define-method child_removed
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_child_removed")
  (return-type "none")
  (parameters
    '("GObject*" "child")
    '("const-gchar*" "name")
  )
)



;; From gstclock.h

(define-function gst_clock_get_type
  (c-name "gst_clock_get_type")
  (return-type "GType")
)

(define-method set_resolution
  (of-object "GstClock")
  (c-name "gst_clock_set_resolution")
  (return-type "GstClockTime")
  (parameters
    '("GstClockTime" "resolution")
  )
)

(define-method get_resolution
  (of-object "GstClock")
  (c-name "gst_clock_get_resolution")
  (return-type "GstClockTime")
)

(define-method get_time
  (of-object "GstClock")
  (c-name "gst_clock_get_time")
  (return-type "GstClockTime")
)

(define-method set_calibration
  (of-object "GstClock")
  (c-name "gst_clock_set_calibration")
  (return-type "none")
  (parameters
    '("GstClockTime" "internal")
    '("GstClockTime" "external")
    '("GstClockTime" "rate_num")
    '("GstClockTime" "rate_denom")
  )
)

(define-method get_calibration
  (of-object "GstClock")
  (c-name "gst_clock_get_calibration")
  (return-type "none")
  (parameters
    '("GstClockTime*" "internal")
    '("GstClockTime*" "external")
    '("GstClockTime*" "rate_num")
    '("GstClockTime*" "rate_denom")
  )
)

(define-method set_master
  (of-object "GstClock")
  (c-name "gst_clock_set_master")
  (return-type "gboolean")
  (parameters
    '("GstClock*" "master")
  )
)

(define-method get_master
  (of-object "GstClock")
  (c-name "gst_clock_get_master")
  (return-type "GstClock*")
)

(define-method set_timeout
  (of-object "GstClock")
  (c-name "gst_clock_set_timeout")
  (return-type "none")
  (parameters
    '("GstClockTime" "timeout")
  )
)

(define-method get_timeout
  (of-object "GstClock")
  (c-name "gst_clock_get_timeout")
  (return-type "GstClockTime")
)

(define-method add_observation
  (of-object "GstClock")
  (c-name "gst_clock_add_observation")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "slave")
    '("GstClockTime" "master")
    '("gdouble*" "r_squared")
  )
)

(define-method add_observation_unapplied
  (of-object "GstClock")
  (c-name "gst_clock_add_observation_unapplied")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "slave")
    '("GstClockTime" "master")
    '("gdouble*" "r_squared")
    '("GstClockTime*" "internal")
    '("GstClockTime*" "external")
    '("GstClockTime*" "rate_num")
    '("GstClockTime*" "rate_denom")
  )
)

(define-method get_internal_time
  (of-object "GstClock")
  (c-name "gst_clock_get_internal_time")
  (return-type "GstClockTime")
)

(define-method adjust_unlocked
  (of-object "GstClock")
  (c-name "gst_clock_adjust_unlocked")
  (return-type "GstClockTime")
  (parameters
    '("GstClockTime" "internal")
  )
)

(define-method adjust_with_calibration
  (of-object "GstClock")
  (c-name "gst_clock_adjust_with_calibration")
  (return-type "GstClockTime")
  (parameters
    '("GstClockTime" "internal_target")
    '("GstClockTime" "cinternal")
    '("GstClockTime" "cexternal")
    '("GstClockTime" "cnum")
    '("GstClockTime" "cdenom")
  )
)

(define-method unadjust_with_calibration
  (of-object "GstClock")
  (c-name "gst_clock_unadjust_with_calibration")
  (return-type "GstClockTime")
  (parameters
    '("GstClockTime" "external_target")
    '("GstClockTime" "cinternal")
    '("GstClockTime" "cexternal")
    '("GstClockTime" "cnum")
    '("GstClockTime" "cdenom")
  )
)

(define-method unadjust_unlocked
  (of-object "GstClock")
  (c-name "gst_clock_unadjust_unlocked")
  (return-type "GstClockTime")
  (parameters
    '("GstClockTime" "external")
  )
)

(define-method wait_for_sync
  (of-object "GstClock")
  (c-name "gst_clock_wait_for_sync")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timeout")
  )
)

(define-method is_synced
  (of-object "GstClock")
  (c-name "gst_clock_is_synced")
  (return-type "gboolean")
)

(define-method set_synced
  (of-object "GstClock")
  (c-name "gst_clock_set_synced")
  (return-type "none")
  (parameters
    '("gboolean" "synced")
  )
)

(define-method new_single_shot_id
  (of-object "GstClock")
  (c-name "gst_clock_new_single_shot_id")
  (return-type "GstClockID")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-method new_periodic_id
  (of-object "GstClock")
  (c-name "gst_clock_new_periodic_id")
  (return-type "GstClockID")
  (parameters
    '("GstClockTime" "start_time")
    '("GstClockTime" "interval")
  )
)

(define-method ref
  (of-object "GstClockID")
  (c-name "gst_clock_id_ref")
  (return-type "GstClockID")
)

(define-method unref
  (of-object "GstClockID")
  (c-name "gst_clock_id_unref")
  (return-type "none")
)

(define-function gst_clock_id_compare_func
  (c-name "gst_clock_id_compare_func")
  (return-type "gint")
  (parameters
    '("gconstpointer" "id1")
    '("gconstpointer" "id2")
  )
)

(define-method get_time
  (of-object "GstClockID")
  (c-name "gst_clock_id_get_time")
  (return-type "GstClockTime")
)

(define-method wait
  (of-object "GstClockID")
  (c-name "gst_clock_id_wait")
  (return-type "GstClockReturn")
  (parameters
    '("GstClockTimeDiff*" "jitter")
  )
)

(define-method wait_async
  (of-object "GstClockID")
  (c-name "gst_clock_id_wait_async")
  (return-type "GstClockReturn")
  (parameters
    '("GstClockCallback" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_data")
  )
)

(define-method unschedule
  (of-object "GstClockID")
  (c-name "gst_clock_id_unschedule")
  (return-type "none")
)

(define-method single_shot_id_reinit
  (of-object "GstClock")
  (c-name "gst_clock_single_shot_id_reinit")
  (return-type "gboolean")
  (parameters
    '("GstClockID" "id")
    '("GstClockTime" "time")
  )
)

(define-method periodic_id_reinit
  (of-object "GstClock")
  (c-name "gst_clock_periodic_id_reinit")
  (return-type "gboolean")
  (parameters
    '("GstClockID" "id")
    '("GstClockTime" "start_time")
    '("GstClockTime" "interval")
  )
)



;; From gstcompat.h

(define-method set_caps
  (of-object "GstPad")
  (c-name "gst_pad_set_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)



;; From gstconfig.h



;; From gstcontext.h

(define-function gst_context_get_type
  (c-name "gst_context_get_type")
  (return-type "GType")
)

(define-method ref
  (of-object "GstContext")
  (c-name "gst_context_ref")
  (return-type "GstContext*")
)

(define-method unref
  (of-object "GstContext")
  (c-name "gst_context_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstContext")
  (c-name "gst_context_copy")
  (return-type "GstContext*")
)

(define-function gst_context_replace
  (c-name "gst_context_replace")
  (return-type "gboolean")
  (parameters
    '("GstContext**" "old_context")
    '("GstContext*" "new_context")
  )
)

(define-function gst_context_new
  (c-name "gst_context_new")
  (is-constructor-of "GstContext")
  (return-type "GstContext*")
  (parameters
    '("const-gchar*" "context_type")
    '("gboolean" "persistent")
  )
)

(define-method get_context_type
  (of-object "GstContext")
  (c-name "gst_context_get_context_type")
  (return-type "const-gchar*")
)

(define-method has_context_type
  (of-object "GstContext")
  (c-name "gst_context_has_context_type")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "context_type")
  )
)

(define-method get_structure
  (of-object "GstContext")
  (c-name "gst_context_get_structure")
  (return-type "const-GstStructure*")
)

(define-method writable_structure
  (of-object "GstContext")
  (c-name "gst_context_writable_structure")
  (return-type "GstStructure*")
)

(define-method is_persistent
  (of-object "GstContext")
  (c-name "gst_context_is_persistent")
  (return-type "gboolean")
)



;; From gstcontrolbinding.h

(define-function gst_control_binding_get_type
  (c-name "gst_control_binding_get_type")
  (return-type "GType")
)

(define-method sync_values
  (of-object "GstControlBinding")
  (c-name "gst_control_binding_sync_values")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "object")
    '("GstClockTime" "timestamp")
    '("GstClockTime" "last_sync")
  )
)

(define-method get_value
  (of-object "GstControlBinding")
  (c-name "gst_control_binding_get_value")
  (return-type "GValue*")
  (parameters
    '("GstClockTime" "timestamp")
  )
)

(define-method get_value_array
  (of-object "GstControlBinding")
  (c-name "gst_control_binding_get_value_array")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("GstClockTime" "interval")
    '("guint" "n_values")
    '("gpointer" "values")
  )
)

(define-method get_g_value_array
  (of-object "GstControlBinding")
  (c-name "gst_control_binding_get_g_value_array")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("GstClockTime" "interval")
    '("guint" "n_values")
    '("GValue*" "values")
  )
)

(define-method set_disabled
  (of-object "GstControlBinding")
  (c-name "gst_control_binding_set_disabled")
  (return-type "none")
  (parameters
    '("gboolean" "disabled")
  )
)

(define-method is_disabled
  (of-object "GstControlBinding")
  (c-name "gst_control_binding_is_disabled")
  (return-type "gboolean")
)



;; From gstcontrolsource.h

(define-function gst_control_source_get_type
  (c-name "gst_control_source_get_type")
  (return-type "GType")
)

(define-method get_value
  (of-object "GstControlSource")
  (c-name "gst_control_source_get_value")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("gdouble*" "value")
  )
)

(define-method get_value_array
  (of-object "GstControlSource")
  (c-name "gst_control_source_get_value_array")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("GstClockTime" "interval")
    '("guint" "n_values")
    '("gdouble*" "values")
  )
)



;; From gstdatetime.h

(define-function gst_date_time_get_type
  (c-name "gst_date_time_get_type")
  (return-type "GType")
)

(define-method has_year
  (of-object "GstDateTime")
  (c-name "gst_date_time_has_year")
  (return-type "gboolean")
)

(define-method has_month
  (of-object "GstDateTime")
  (c-name "gst_date_time_has_month")
  (return-type "gboolean")
)

(define-method has_day
  (of-object "GstDateTime")
  (c-name "gst_date_time_has_day")
  (return-type "gboolean")
)

(define-method has_time
  (of-object "GstDateTime")
  (c-name "gst_date_time_has_time")
  (return-type "gboolean")
)

(define-method has_second
  (of-object "GstDateTime")
  (c-name "gst_date_time_has_second")
  (return-type "gboolean")
)

(define-method get_year
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_year")
  (return-type "gint")
)

(define-method get_month
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_month")
  (return-type "gint")
)

(define-method get_day
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_day")
  (return-type "gint")
)

(define-method get_hour
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_hour")
  (return-type "gint")
)

(define-method get_minute
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_minute")
  (return-type "gint")
)

(define-method get_second
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_second")
  (return-type "gint")
)

(define-method get_microsecond
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_microsecond")
  (return-type "gint")
)

(define-method get_time_zone_offset
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_time_zone_offset")
  (return-type "gfloat")
)

(define-function gst_date_time_new_from_unix_epoch_local_time
  (c-name "gst_date_time_new_from_unix_epoch_local_time")
  (return-type "GstDateTime*")
  (parameters
    '("gint64" "secs")
  )
)

(define-function gst_date_time_new_from_unix_epoch_utc
  (c-name "gst_date_time_new_from_unix_epoch_utc")
  (return-type "GstDateTime*")
  (parameters
    '("gint64" "secs")
  )
)

(define-function gst_date_time_new_local_time
  (c-name "gst_date_time_new_local_time")
  (return-type "GstDateTime*")
  (parameters
    '("gint" "year")
    '("gint" "month")
    '("gint" "day")
    '("gint" "hour")
    '("gint" "minute")
    '("gdouble" "seconds")
  )
)

(define-function gst_date_time_new_y
  (c-name "gst_date_time_new_y")
  (return-type "GstDateTime*")
  (parameters
    '("gint" "year")
  )
)

(define-function gst_date_time_new_ym
  (c-name "gst_date_time_new_ym")
  (return-type "GstDateTime*")
  (parameters
    '("gint" "year")
    '("gint" "month")
  )
)

(define-function gst_date_time_new_ymd
  (c-name "gst_date_time_new_ymd")
  (return-type "GstDateTime*")
  (parameters
    '("gint" "year")
    '("gint" "month")
    '("gint" "day")
  )
)

(define-function gst_date_time_new
  (c-name "gst_date_time_new")
  (is-constructor-of "GstDateTime")
  (return-type "GstDateTime*")
  (parameters
    '("gfloat" "tzoffset")
    '("gint" "year")
    '("gint" "month")
    '("gint" "day")
    '("gint" "hour")
    '("gint" "minute")
    '("gdouble" "seconds")
  )
)

(define-function gst_date_time_new_now_local_time
  (c-name "gst_date_time_new_now_local_time")
  (return-type "GstDateTime*")
)

(define-function gst_date_time_new_now_utc
  (c-name "gst_date_time_new_now_utc")
  (return-type "GstDateTime*")
)

(define-method to_iso8601_string
  (of-object "GstDateTime")
  (c-name "gst_date_time_to_iso8601_string")
  (return-type "gchar*")
)

(define-function gst_date_time_new_from_iso8601_string
  (c-name "gst_date_time_new_from_iso8601_string")
  (return-type "GstDateTime*")
  (parameters
    '("const-gchar*" "string")
  )
)

(define-method to_g_date_time
  (of-object "GstDateTime")
  (c-name "gst_date_time_to_g_date_time")
  (return-type "GDateTime*")
)

(define-function gst_date_time_new_from_g_date_time
  (c-name "gst_date_time_new_from_g_date_time")
  (return-type "GstDateTime*")
  (parameters
    '("GDateTime*" "dt")
  )
)

(define-method ref
  (of-object "GstDateTime")
  (c-name "gst_date_time_ref")
  (return-type "GstDateTime*")
)

(define-method unref
  (of-object "GstDateTime")
  (c-name "gst_date_time_unref")
  (return-type "none")
)



;; From gstdebugutils.h

(define-function gst_debug_bin_to_dot_data
  (c-name "gst_debug_bin_to_dot_data")
  (return-type "gchar*")
  (parameters
    '("GstBin*" "bin")
    '("GstDebugGraphDetails" "details")
  )
)

(define-function gst_debug_bin_to_dot_file
  (c-name "gst_debug_bin_to_dot_file")
  (return-type "none")
  (parameters
    '("GstBin*" "bin")
    '("GstDebugGraphDetails" "details")
    '("const-gchar*" "file_name")
  )
)

(define-function gst_debug_bin_to_dot_file_with_ts
  (c-name "gst_debug_bin_to_dot_file_with_ts")
  (return-type "none")
  (parameters
    '("GstBin*" "bin")
    '("GstDebugGraphDetails" "details")
    '("const-gchar*" "file_name")
  )
)



;; From gstdevice.h

(define-function gst_device_get_type
  (c-name "gst_device_get_type")
  (return-type "GType")
)

(define-method create_element
  (of-object "GstDevice")
  (c-name "gst_device_create_element")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_caps
  (of-object "GstDevice")
  (c-name "gst_device_get_caps")
  (return-type "GstCaps*")
)

(define-method get_display_name
  (of-object "GstDevice")
  (c-name "gst_device_get_display_name")
  (return-type "gchar*")
)

(define-method get_device_class
  (of-object "GstDevice")
  (c-name "gst_device_get_device_class")
  (return-type "gchar*")
)

(define-method get_properties
  (of-object "GstDevice")
  (c-name "gst_device_get_properties")
  (return-type "GstStructure*")
)

(define-method reconfigure_element
  (of-object "GstDevice")
  (c-name "gst_device_reconfigure_element")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
  )
)

(define-method has_classesv
  (of-object "GstDevice")
  (c-name "gst_device_has_classesv")
  (return-type "gboolean")
  (parameters
    '("gchar**" "classes")
  )
)

(define-method has_classes
  (of-object "GstDevice")
  (c-name "gst_device_has_classes")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "classes")
  )
)



;; From gstdevicemonitor.h

(define-function gst_device_monitor_get_type
  (c-name "gst_device_monitor_get_type")
  (return-type "GType")
)

(define-function gst_device_monitor_new
  (c-name "gst_device_monitor_new")
  (is-constructor-of "GstDeviceMonitor")
  (return-type "GstDeviceMonitor*")
)

(define-method get_bus
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_get_bus")
  (return-type "GstBus*")
)

(define-method get_devices
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_get_devices")
  (return-type "GList*")
)

(define-method start
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_start")
  (return-type "gboolean")
)

(define-method stop
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_stop")
  (return-type "none")
)

(define-method add_filter
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_add_filter")
  (return-type "guint")
  (parameters
    '("const-gchar*" "classes")
    '("GstCaps*" "caps")
  )
)

(define-method remove_filter
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_remove_filter")
  (return-type "gboolean")
  (parameters
    '("guint" "filter_id")
  )
)

(define-method get_providers
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_get_providers")
  (return-type "gchar**")
)

(define-method set_show_all_devices
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_set_show_all_devices")
  (return-type "none")
  (parameters
    '("gboolean" "show_all")
  )
)

(define-method get_show_all_devices
  (of-object "GstDeviceMonitor")
  (c-name "gst_device_monitor_get_show_all_devices")
  (return-type "gboolean")
)



;; From gstdeviceproviderfactory.h

(define-function gst_device_provider_factory_get_type
  (c-name "gst_device_provider_factory_get_type")
  (return-type "GType")
)

(define-function gst_device_provider_factory_find
  (c-name "gst_device_provider_factory_find")
  (return-type "GstDeviceProviderFactory*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_device_provider_type
  (of-object "GstDeviceProviderFactory")
  (c-name "gst_device_provider_factory_get_device_provider_type")
  (return-type "GType")
)

(define-method get_metadata
  (of-object "GstDeviceProviderFactory")
  (c-name "gst_device_provider_factory_get_metadata")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)

(define-method get_metadata_keys
  (of-object "GstDeviceProviderFactory")
  (c-name "gst_device_provider_factory_get_metadata_keys")
  (return-type "gchar**")
)

(define-method get
  (of-object "GstDeviceProviderFactory")
  (c-name "gst_device_provider_factory_get")
  (return-type "GstDeviceProvider*")
)

(define-function gst_device_provider_factory_get_by_name
  (c-name "gst_device_provider_factory_get_by_name")
  (return-type "GstDeviceProvider*")
  (parameters
    '("const-gchar*" "factoryname")
  )
)

(define-function gst_device_provider_register
  (c-name "gst_device_provider_register")
  (return-type "gboolean")
  (parameters
    '("GstPlugin*" "plugin")
    '("const-gchar*" "name")
    '("guint" "rank")
    '("GType" "type")
  )
)

(define-method has_classesv
  (of-object "GstDeviceProviderFactory")
  (c-name "gst_device_provider_factory_has_classesv")
  (return-type "gboolean")
  (parameters
    '("gchar**" "classes")
  )
)

(define-method has_classes
  (of-object "GstDeviceProviderFactory")
  (c-name "gst_device_provider_factory_has_classes")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "classes")
  )
)

(define-function gst_device_provider_factory_list_get_device_providers
  (c-name "gst_device_provider_factory_list_get_device_providers")
  (return-type "GList*")
  (parameters
    '("GstRank" "minrank")
  )
)



;; From gstdeviceprovider.h

(define-function gst_device_provider_get_type
  (c-name "gst_device_provider_get_type")
  (return-type "GType")
)

(define-method get_devices
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_get_devices")
  (return-type "GList*")
)

(define-method start
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_start")
  (return-type "gboolean")
)

(define-method stop
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_stop")
  (return-type "none")
)

(define-method can_monitor
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_can_monitor")
  (return-type "gboolean")
)

(define-method get_bus
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_get_bus")
  (return-type "GstBus*")
)

(define-method device_add
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_device_add")
  (return-type "none")
  (parameters
    '("GstDevice*" "device")
  )
)

(define-method device_remove
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_device_remove")
  (return-type "none")
  (parameters
    '("GstDevice*" "device")
  )
)

(define-method get_hidden_providers
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_get_hidden_providers")
  (return-type "gchar**")
)

(define-method hide_provider
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_hide_provider")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method unhide_provider
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_unhide_provider")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_metadata
  (of-object "GstDeviceProviderClass")
  (c-name "gst_device_provider_class_set_metadata")
  (return-type "none")
  (parameters
    '("const-gchar*" "longname")
    '("const-gchar*" "classification")
    '("const-gchar*" "description")
    '("const-gchar*" "author")
  )
)

(define-method set_static_metadata
  (of-object "GstDeviceProviderClass")
  (c-name "gst_device_provider_class_set_static_metadata")
  (return-type "none")
  (parameters
    '("const-gchar*" "longname")
    '("const-gchar*" "classification")
    '("const-gchar*" "description")
    '("const-gchar*" "author")
  )
)

(define-method add_metadata
  (of-object "GstDeviceProviderClass")
  (c-name "gst_device_provider_class_add_metadata")
  (return-type "none")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)

(define-method add_static_metadata
  (of-object "GstDeviceProviderClass")
  (c-name "gst_device_provider_class_add_static_metadata")
  (return-type "none")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)

(define-method get_metadata
  (of-object "GstDeviceProviderClass")
  (c-name "gst_device_provider_class_get_metadata")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)

(define-method get_factory
  (of-object "GstDeviceProvider")
  (c-name "gst_device_provider_get_factory")
  (return-type "GstDeviceProviderFactory*")
)



;; From gstelementfactory.h

(define-function gst_element_factory_get_type
  (c-name "gst_element_factory_get_type")
  (return-type "GType")
)

(define-function gst_element_factory_find
  (c-name "gst_element_factory_find")
  (return-type "GstElementFactory*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_element_type
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_element_type")
  (return-type "GType")
)

(define-method get_metadata
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_metadata")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)

(define-method get_metadata_keys
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_metadata_keys")
  (return-type "gchar**")
)

(define-method get_num_pad_templates
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_num_pad_templates")
  (return-type "guint")
)

(define-method get_static_pad_templates
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_static_pad_templates")
  (return-type "const-GList*")
)

(define-method get_uri_type
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_uri_type")
  (return-type "GstURIType")
)

(define-method get_uri_protocols
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_uri_protocols")
  (return-type "const-gchar*-const*")
)

(define-method has_interface
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_has_interface")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "interfacename")
  )
)

(define-method create
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_create")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-function gst_element_factory_make
  (c-name "gst_element_factory_make")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "factoryname")
    '("const-gchar*" "name")
  )
)

(define-function gst_element_register
  (c-name "gst_element_register")
  (return-type "gboolean")
  (parameters
    '("GstPlugin*" "plugin")
    '("const-gchar*" "name")
    '("guint" "rank")
    '("GType" "type")
  )
)

(define-method list_is_type
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_list_is_type")
  (return-type "gboolean")
  (parameters
    '("GstElementFactoryListType" "type")
  )
)

(define-function gst_element_factory_list_get_elements
  (c-name "gst_element_factory_list_get_elements")
  (return-type "GList*")
  (parameters
    '("GstElementFactoryListType" "type")
    '("GstRank" "minrank")
  )
)

(define-function gst_element_factory_list_filter
  (c-name "gst_element_factory_list_filter")
  (return-type "GList*")
  (parameters
    '("GList*" "list")
    '("const-GstCaps*" "caps")
    '("GstPadDirection" "direction")
    '("gboolean" "subsetonly")
  )
)



;; From gstelement.h

(define-method add_pad_template
  (of-object "GstElementClass")
  (c-name "gst_element_class_add_pad_template")
  (return-type "none")
  (parameters
    '("GstPadTemplate*" "templ")
  )
)

(define-method add_static_pad_template
  (of-object "GstElementClass")
  (c-name "gst_element_class_add_static_pad_template")
  (return-type "none")
  (parameters
    '("GstStaticPadTemplate*" "static_templ")
  )
)

(define-method get_pad_template
  (of-object "GstElementClass")
  (c-name "gst_element_class_get_pad_template")
  (return-type "GstPadTemplate*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_pad_template_list
  (of-object "GstElementClass")
  (c-name "gst_element_class_get_pad_template_list")
  (return-type "GList*")
)

(define-method set_metadata
  (of-object "GstElementClass")
  (c-name "gst_element_class_set_metadata")
  (return-type "none")
  (parameters
    '("const-gchar*" "longname")
    '("const-gchar*" "classification")
    '("const-gchar*" "description")
    '("const-gchar*" "author")
  )
)

(define-method set_static_metadata
  (of-object "GstElementClass")
  (c-name "gst_element_class_set_static_metadata")
  (return-type "none")
  (parameters
    '("const-gchar*" "longname")
    '("const-gchar*" "classification")
    '("const-gchar*" "description")
    '("const-gchar*" "author")
  )
)

(define-method add_metadata
  (of-object "GstElementClass")
  (c-name "gst_element_class_add_metadata")
  (return-type "none")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)

(define-method add_static_metadata
  (of-object "GstElementClass")
  (c-name "gst_element_class_add_static_metadata")
  (return-type "none")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)

(define-method get_metadata
  (of-object "GstElementClass")
  (c-name "gst_element_class_get_metadata")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)

(define-function gst_element_get_type
  (c-name "gst_element_get_type")
  (return-type "GType")
)

(define-method provide_clock
  (of-object "GstElement")
  (c-name "gst_element_provide_clock")
  (return-type "GstClock*")
)

(define-method get_clock
  (of-object "GstElement")
  (c-name "gst_element_get_clock")
  (return-type "GstClock*")
)

(define-method set_clock
  (of-object "GstElement")
  (c-name "gst_element_set_clock")
  (return-type "gboolean")
  (parameters
    '("GstClock*" "clock")
  )
)

(define-method set_base_time
  (of-object "GstElement")
  (c-name "gst_element_set_base_time")
  (return-type "none")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-method get_base_time
  (of-object "GstElement")
  (c-name "gst_element_get_base_time")
  (return-type "GstClockTime")
)

(define-method set_start_time
  (of-object "GstElement")
  (c-name "gst_element_set_start_time")
  (return-type "none")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-method get_start_time
  (of-object "GstElement")
  (c-name "gst_element_get_start_time")
  (return-type "GstClockTime")
)

(define-method set_bus
  (of-object "GstElement")
  (c-name "gst_element_set_bus")
  (return-type "none")
  (parameters
    '("GstBus*" "bus")
  )
)

(define-method get_bus
  (of-object "GstElement")
  (c-name "gst_element_get_bus")
  (return-type "GstBus*")
)

(define-method set_context
  (of-object "GstElement")
  (c-name "gst_element_set_context")
  (return-type "none")
  (parameters
    '("GstContext*" "context")
  )
)

(define-method get_contexts
  (of-object "GstElement")
  (c-name "gst_element_get_contexts")
  (return-type "GList*")
)

(define-method get_context
  (of-object "GstElement")
  (c-name "gst_element_get_context")
  (return-type "GstContext*")
  (parameters
    '("const-gchar*" "context_type")
  )
)

(define-method get_context_unlocked
  (of-object "GstElement")
  (c-name "gst_element_get_context_unlocked")
  (return-type "GstContext*")
  (parameters
    '("const-gchar*" "context_type")
  )
)

(define-method add_pad
  (of-object "GstElement")
  (c-name "gst_element_add_pad")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method remove_pad
  (of-object "GstElement")
  (c-name "gst_element_remove_pad")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method no_more_pads
  (of-object "GstElement")
  (c-name "gst_element_no_more_pads")
  (return-type "none")
)

(define-method get_static_pad
  (of-object "GstElement")
  (c-name "gst_element_get_static_pad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_request_pad
  (of-object "GstElement")
  (c-name "gst_element_get_request_pad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method request_pad
  (of-object "GstElement")
  (c-name "gst_element_request_pad")
  (return-type "GstPad*")
  (parameters
    '("GstPadTemplate*" "templ")
    '("const-gchar*" "name")
    '("const-GstCaps*" "caps")
  )
)

(define-method release_request_pad
  (of-object "GstElement")
  (c-name "gst_element_release_request_pad")
  (return-type "none")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method iterate_pads
  (of-object "GstElement")
  (c-name "gst_element_iterate_pads")
  (return-type "GstIterator*")
)

(define-method iterate_src_pads
  (of-object "GstElement")
  (c-name "gst_element_iterate_src_pads")
  (return-type "GstIterator*")
)

(define-method iterate_sink_pads
  (of-object "GstElement")
  (c-name "gst_element_iterate_sink_pads")
  (return-type "GstIterator*")
)

(define-method send_event
  (of-object "GstElement")
  (c-name "gst_element_send_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method seek
  (of-object "GstElement")
  (c-name "gst_element_seek")
  (return-type "gboolean")
  (parameters
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("GstSeekFlags" "flags")
    '("GstSeekType" "start_type")
    '("gint64" "start")
    '("GstSeekType" "stop_type")
    '("gint64" "stop")
  )
)

(define-method query
  (of-object "GstElement")
  (c-name "gst_element_query")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method post_message
  (of-object "GstElement")
  (c-name "gst_element_post_message")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
  )
)

(define-method message_full
  (of-object "GstElement")
  (c-name "gst_element_message_full")
  (return-type "none")
  (parameters
    '("GstMessageType" "type")
    '("GQuark" "domain")
    '("gint" "code")
    '("gchar*" "text")
    '("gchar*" "debug")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
  )
)

(define-method is_locked_state
  (of-object "GstElement")
  (c-name "gst_element_is_locked_state")
  (return-type "gboolean")
)

(define-method set_locked_state
  (of-object "GstElement")
  (c-name "gst_element_set_locked_state")
  (return-type "gboolean")
  (parameters
    '("gboolean" "locked_state")
  )
)

(define-method sync_state_with_parent
  (of-object "GstElement")
  (c-name "gst_element_sync_state_with_parent")
  (return-type "gboolean")
)

(define-method get_state
  (of-object "GstElement")
  (c-name "gst_element_get_state")
  (return-type "GstStateChangeReturn")
  (parameters
    '("GstState*" "state")
    '("GstState*" "pending")
    '("GstClockTime" "timeout")
  )
)

(define-method set_state
  (of-object "GstElement")
  (c-name "gst_element_set_state")
  (return-type "GstStateChangeReturn")
  (parameters
    '("GstState" "state")
  )
)

(define-method abort_state
  (of-object "GstElement")
  (c-name "gst_element_abort_state")
  (return-type "none")
)

(define-method change_state
  (of-object "GstElement")
  (c-name "gst_element_change_state")
  (return-type "GstStateChangeReturn")
  (parameters
    '("GstStateChange" "transition")
  )
)

(define-method continue_state
  (of-object "GstElement")
  (c-name "gst_element_continue_state")
  (return-type "GstStateChangeReturn")
  (parameters
    '("GstStateChangeReturn" "ret")
  )
)

(define-method lost_state
  (of-object "GstElement")
  (c-name "gst_element_lost_state")
  (return-type "none")
)

(define-method get_factory
  (of-object "GstElement")
  (c-name "gst_element_get_factory")
  (return-type "GstElementFactory*")
)



;; From gstelementmetadata.h



;; From gstenumtypes.h

(define-function gst_object_flags_get_type
  (c-name "gst_object_flags_get_type")
  (return-type "GType")
)

(define-function gst_allocator_flags_get_type
  (c-name "gst_allocator_flags_get_type")
  (return-type "GType")
)

(define-function gst_bin_flags_get_type
  (c-name "gst_bin_flags_get_type")
  (return-type "GType")
)

(define-function gst_buffer_flags_get_type
  (c-name "gst_buffer_flags_get_type")
  (return-type "GType")
)

(define-function gst_buffer_copy_flags_get_type
  (c-name "gst_buffer_copy_flags_get_type")
  (return-type "GType")
)

(define-function gst_buffer_pool_acquire_flags_get_type
  (c-name "gst_buffer_pool_acquire_flags_get_type")
  (return-type "GType")
)

(define-function gst_bus_flags_get_type
  (c-name "gst_bus_flags_get_type")
  (return-type "GType")
)

(define-function gst_bus_sync_reply_get_type
  (c-name "gst_bus_sync_reply_get_type")
  (return-type "GType")
)

(define-function gst_caps_flags_get_type
  (c-name "gst_caps_flags_get_type")
  (return-type "GType")
)

(define-function gst_caps_intersect_mode_get_type
  (c-name "gst_caps_intersect_mode_get_type")
  (return-type "GType")
)

(define-function gst_clock_return_get_type
  (c-name "gst_clock_return_get_type")
  (return-type "GType")
)

(define-function gst_clock_entry_type_get_type
  (c-name "gst_clock_entry_type_get_type")
  (return-type "GType")
)

(define-function gst_clock_flags_get_type
  (c-name "gst_clock_flags_get_type")
  (return-type "GType")
)

(define-function gst_debug_graph_details_get_type
  (c-name "gst_debug_graph_details_get_type")
  (return-type "GType")
)

(define-function gst_state_get_type
  (c-name "gst_state_get_type")
  (return-type "GType")
)

(define-function gst_state_change_return_get_type
  (c-name "gst_state_change_return_get_type")
  (return-type "GType")
)

(define-function gst_state_change_get_type
  (c-name "gst_state_change_get_type")
  (return-type "GType")
)

(define-function gst_element_flags_get_type
  (c-name "gst_element_flags_get_type")
  (return-type "GType")
)

(define-function gst_core_error_get_type
  (c-name "gst_core_error_get_type")
  (return-type "GType")
)

(define-function gst_library_error_get_type
  (c-name "gst_library_error_get_type")
  (return-type "GType")
)

(define-function gst_resource_error_get_type
  (c-name "gst_resource_error_get_type")
  (return-type "GType")
)

(define-function gst_stream_error_get_type
  (c-name "gst_stream_error_get_type")
  (return-type "GType")
)

(define-function gst_event_type_flags_get_type
  (c-name "gst_event_type_flags_get_type")
  (return-type "GType")
)

(define-function gst_event_type_get_type
  (c-name "gst_event_type_get_type")
  (return-type "GType")
)

(define-function gst_qos_type_get_type
  (c-name "gst_qos_type_get_type")
  (return-type "GType")
)

(define-function gst_stream_flags_get_type
  (c-name "gst_stream_flags_get_type")
  (return-type "GType")
)

(define-function gst_format_get_type
  (c-name "gst_format_get_type")
  (return-type "GType")
)

(define-function gst_debug_level_get_type
  (c-name "gst_debug_level_get_type")
  (return-type "GType")
)

(define-function gst_debug_color_flags_get_type
  (c-name "gst_debug_color_flags_get_type")
  (return-type "GType")
)

(define-function gst_debug_color_mode_get_type
  (c-name "gst_debug_color_mode_get_type")
  (return-type "GType")
)

(define-function gst_iterator_result_get_type
  (c-name "gst_iterator_result_get_type")
  (return-type "GType")
)

(define-function gst_iterator_item_get_type
  (c-name "gst_iterator_item_get_type")
  (return-type "GType")
)

(define-function gst_message_type_get_type
  (c-name "gst_message_type_get_type")
  (return-type "GType")
)

(define-function gst_structure_change_type_get_type
  (c-name "gst_structure_change_type_get_type")
  (return-type "GType")
)

(define-function gst_stream_status_type_get_type
  (c-name "gst_stream_status_type_get_type")
  (return-type "GType")
)

(define-function gst_progress_type_get_type
  (c-name "gst_progress_type_get_type")
  (return-type "GType")
)

(define-function gst_meta_flags_get_type
  (c-name "gst_meta_flags_get_type")
  (return-type "GType")
)

(define-function gst_memory_flags_get_type
  (c-name "gst_memory_flags_get_type")
  (return-type "GType")
)

(define-function gst_map_flags_get_type
  (c-name "gst_map_flags_get_type")
  (return-type "GType")
)

(define-function gst_mini_object_flags_get_type
  (c-name "gst_mini_object_flags_get_type")
  (return-type "GType")
)

(define-function gst_lock_flags_get_type
  (c-name "gst_lock_flags_get_type")
  (return-type "GType")
)

(define-function gst_pad_direction_get_type
  (c-name "gst_pad_direction_get_type")
  (return-type "GType")
)

(define-function gst_pad_mode_get_type
  (c-name "gst_pad_mode_get_type")
  (return-type "GType")
)

(define-function gst_pad_link_return_get_type
  (c-name "gst_pad_link_return_get_type")
  (return-type "GType")
)

(define-function gst_flow_return_get_type
  (c-name "gst_flow_return_get_type")
  (return-type "GType")
)

(define-function gst_pad_link_check_get_type
  (c-name "gst_pad_link_check_get_type")
  (return-type "GType")
)

(define-function gst_pad_probe_type_get_type
  (c-name "gst_pad_probe_type_get_type")
  (return-type "GType")
)

(define-function gst_pad_probe_return_get_type
  (c-name "gst_pad_probe_return_get_type")
  (return-type "GType")
)

(define-function gst_pad_flags_get_type
  (c-name "gst_pad_flags_get_type")
  (return-type "GType")
)

(define-function gst_pad_presence_get_type
  (c-name "gst_pad_presence_get_type")
  (return-type "GType")
)

(define-function gst_pad_template_flags_get_type
  (c-name "gst_pad_template_flags_get_type")
  (return-type "GType")
)

(define-function gst_pipeline_flags_get_type
  (c-name "gst_pipeline_flags_get_type")
  (return-type "GType")
)

(define-function gst_plugin_error_get_type
  (c-name "gst_plugin_error_get_type")
  (return-type "GType")
)

(define-function gst_plugin_flags_get_type
  (c-name "gst_plugin_flags_get_type")
  (return-type "GType")
)

(define-function gst_plugin_dependency_flags_get_type
  (c-name "gst_plugin_dependency_flags_get_type")
  (return-type "GType")
)

(define-function gst_rank_get_type
  (c-name "gst_rank_get_type")
  (return-type "GType")
)

(define-function gst_query_type_flags_get_type
  (c-name "gst_query_type_flags_get_type")
  (return-type "GType")
)

(define-function gst_query_type_get_type
  (c-name "gst_query_type_get_type")
  (return-type "GType")
)

(define-function gst_buffering_mode_get_type
  (c-name "gst_buffering_mode_get_type")
  (return-type "GType")
)

(define-function gst_scheduling_flags_get_type
  (c-name "gst_scheduling_flags_get_type")
  (return-type "GType")
)

(define-function gst_seek_type_get_type
  (c-name "gst_seek_type_get_type")
  (return-type "GType")
)

(define-function gst_seek_flags_get_type
  (c-name "gst_seek_flags_get_type")
  (return-type "GType")
)

(define-function gst_segment_flags_get_type
  (c-name "gst_segment_flags_get_type")
  (return-type "GType")
)

(define-function gst_clock_type_get_type
  (c-name "gst_clock_type_get_type")
  (return-type "GType")
)

(define-function gst_tag_merge_mode_get_type
  (c-name "gst_tag_merge_mode_get_type")
  (return-type "GType")
)

(define-function gst_tag_flag_get_type
  (c-name "gst_tag_flag_get_type")
  (return-type "GType")
)

(define-function gst_tag_scope_get_type
  (c-name "gst_tag_scope_get_type")
  (return-type "GType")
)

(define-function gst_task_state_get_type
  (c-name "gst_task_state_get_type")
  (return-type "GType")
)

(define-function gst_toc_scope_get_type
  (c-name "gst_toc_scope_get_type")
  (return-type "GType")
)

(define-function gst_toc_entry_type_get_type
  (c-name "gst_toc_entry_type_get_type")
  (return-type "GType")
)

(define-function gst_toc_loop_type_get_type
  (c-name "gst_toc_loop_type_get_type")
  (return-type "GType")
)

(define-function gst_tracer_value_scope_get_type
  (c-name "gst_tracer_value_scope_get_type")
  (return-type "GType")
)

(define-function gst_tracer_value_flags_get_type
  (c-name "gst_tracer_value_flags_get_type")
  (return-type "GType")
)

(define-function gst_type_find_probability_get_type
  (c-name "gst_type_find_probability_get_type")
  (return-type "GType")
)

(define-function gst_uri_error_get_type
  (c-name "gst_uri_error_get_type")
  (return-type "GType")
)

(define-function gst_uri_type_get_type
  (c-name "gst_uri_type_get_type")
  (return-type "GType")
)

(define-function gst_search_mode_get_type
  (c-name "gst_search_mode_get_type")
  (return-type "GType")
)

(define-function gst_parse_error_get_type
  (c-name "gst_parse_error_get_type")
  (return-type "GType")
)

(define-function gst_parse_flags_get_type
  (c-name "gst_parse_flags_get_type")
  (return-type "GType")
)



;; From gsterror.h

(define-function gst_error_get_message
  (c-name "gst_error_get_message")
  (return-type "gchar*")
  (parameters
    '("GQuark" "domain")
    '("gint" "code")
  )
)

(define-function gst_stream_error_quark
  (c-name "gst_stream_error_quark")
  (return-type "GQuark")
)

(define-function gst_core_error_quark
  (c-name "gst_core_error_quark")
  (return-type "GQuark")
)

(define-function gst_resource_error_quark
  (c-name "gst_resource_error_quark")
  (return-type "GQuark")
)

(define-function gst_library_error_quark
  (c-name "gst_library_error_quark")
  (return-type "GQuark")
)



;; From gstevent.h

(define-function gst_event_replace
  (c-name "gst_event_replace")
  (return-type "gboolean")
  (parameters
    '("GstEvent**" "old_event")
    '("GstEvent*" "new_event")
  )
)

(define-function gst_event_steal
  (c-name "gst_event_steal")
  (return-type "GstEvent*")
  (parameters
    '("GstEvent**" "old_event")
  )
)

(define-function gst_event_take
  (c-name "gst_event_take")
  (return-type "gboolean")
  (parameters
    '("GstEvent**" "old_event")
    '("GstEvent*" "new_event")
  )
)

(define-method get_name
  (of-object "GstEventType")
  (c-name "gst_event_type_get_name")
  (return-type "const-gchar*")
)

(define-method to_quark
  (of-object "GstEventType")
  (c-name "gst_event_type_to_quark")
  (return-type "GQuark")
)

(define-method get_flags
  (of-object "GstEventType")
  (c-name "gst_event_type_get_flags")
  (return-type "GstEventTypeFlags")
)

(define-method ref
  (of-object "GstEvent")
  (c-name "gst_event_ref")
  (return-type "GstEvent*")
)

(define-method unref
  (of-object "GstEvent")
  (c-name "gst_event_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstEvent")
  (c-name "gst_event_copy")
  (return-type "GstEvent*")
)

(define-function gst_event_get_type
  (c-name "gst_event_get_type")
  (return-type "GType")
)

(define-function gst_event_new_custom
  (c-name "gst_event_new_custom")
  (return-type "GstEvent*")
  (parameters
    '("GstEventType" "type")
    '("GstStructure*" "structure")
  )
)

(define-method get_structure
  (of-object "GstEvent")
  (c-name "gst_event_get_structure")
  (return-type "const-GstStructure*")
)

(define-method writable_structure
  (of-object "GstEvent")
  (c-name "gst_event_writable_structure")
  (return-type "GstStructure*")
)

(define-method has_name
  (of-object "GstEvent")
  (c-name "gst_event_has_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_seqnum
  (of-object "GstEvent")
  (c-name "gst_event_get_seqnum")
  (return-type "guint32")
)

(define-method set_seqnum
  (of-object "GstEvent")
  (c-name "gst_event_set_seqnum")
  (return-type "none")
  (parameters
    '("guint32" "seqnum")
  )
)

(define-method get_running_time_offset
  (of-object "GstEvent")
  (c-name "gst_event_get_running_time_offset")
  (return-type "gint64")
)

(define-method set_running_time_offset
  (of-object "GstEvent")
  (c-name "gst_event_set_running_time_offset")
  (return-type "none")
  (parameters
    '("gint64" "offset")
  )
)

(define-function gst_event_new_stream_start
  (c-name "gst_event_new_stream_start")
  (return-type "GstEvent*")
  (parameters
    '("const-gchar*" "stream_id")
  )
)

(define-method parse_stream_start
  (of-object "GstEvent")
  (c-name "gst_event_parse_stream_start")
  (return-type "none")
  (parameters
    '("const-gchar**" "stream_id")
  )
)

(define-method set_stream_flags
  (of-object "GstEvent")
  (c-name "gst_event_set_stream_flags")
  (return-type "none")
  (parameters
    '("GstStreamFlags" "flags")
  )
)

(define-method parse_stream_flags
  (of-object "GstEvent")
  (c-name "gst_event_parse_stream_flags")
  (return-type "none")
  (parameters
    '("GstStreamFlags*" "flags")
  )
)

(define-method set_group_id
  (of-object "GstEvent")
  (c-name "gst_event_set_group_id")
  (return-type "none")
  (parameters
    '("guint" "group_id")
  )
)

(define-method parse_group_id
  (of-object "GstEvent")
  (c-name "gst_event_parse_group_id")
  (return-type "gboolean")
  (parameters
    '("guint*" "group_id")
  )
)

(define-function gst_event_new_flush_start
  (c-name "gst_event_new_flush_start")
  (return-type "GstEvent*")
)

(define-function gst_event_new_flush_stop
  (c-name "gst_event_new_flush_stop")
  (return-type "GstEvent*")
  (parameters
    '("gboolean" "reset_time")
  )
)

(define-method parse_flush_stop
  (of-object "GstEvent")
  (c-name "gst_event_parse_flush_stop")
  (return-type "none")
  (parameters
    '("gboolean*" "reset_time")
  )
)

(define-function gst_event_new_eos
  (c-name "gst_event_new_eos")
  (return-type "GstEvent*")
)

(define-function gst_event_new_gap
  (c-name "gst_event_new_gap")
  (return-type "GstEvent*")
  (parameters
    '("GstClockTime" "timestamp")
    '("GstClockTime" "duration")
  )
)

(define-method parse_gap
  (of-object "GstEvent")
  (c-name "gst_event_parse_gap")
  (return-type "none")
  (parameters
    '("GstClockTime*" "timestamp")
    '("GstClockTime*" "duration")
  )
)

(define-function gst_event_new_caps
  (c-name "gst_event_new_caps")
  (return-type "GstEvent*")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method parse_caps
  (of-object "GstEvent")
  (c-name "gst_event_parse_caps")
  (return-type "none")
  (parameters
    '("GstCaps**" "caps")
  )
)

(define-function gst_event_new_segment
  (c-name "gst_event_new_segment")
  (return-type "GstEvent*")
  (parameters
    '("const-GstSegment*" "segment")
  )
)

(define-method parse_segment
  (of-object "GstEvent")
  (c-name "gst_event_parse_segment")
  (return-type "none")
  (parameters
    '("const-GstSegment**" "segment")
  )
)

(define-method copy_segment
  (of-object "GstEvent")
  (c-name "gst_event_copy_segment")
  (return-type "none")
  (parameters
    '("GstSegment*" "segment")
  )
)

(define-function gst_event_new_tag
  (c-name "gst_event_new_tag")
  (return-type "GstEvent*")
  (parameters
    '("GstTagList*" "taglist")
  )
)

(define-method parse_tag
  (of-object "GstEvent")
  (c-name "gst_event_parse_tag")
  (return-type "none")
  (parameters
    '("GstTagList**" "taglist")
  )
)

(define-function gst_event_new_toc
  (c-name "gst_event_new_toc")
  (return-type "GstEvent*")
  (parameters
    '("GstToc*" "toc")
    '("gboolean" "updated")
  )
)

(define-method parse_toc
  (of-object "GstEvent")
  (c-name "gst_event_parse_toc")
  (return-type "none")
  (parameters
    '("GstToc**" "toc")
    '("gboolean*" "updated")
  )
)

(define-function gst_event_new_protection
  (c-name "gst_event_new_protection")
  (return-type "GstEvent*")
  (parameters
    '("const-gchar*" "system_id")
    '("GstBuffer*" "data")
    '("const-gchar*" "origin")
  )
)

(define-method parse_protection
  (of-object "GstEvent")
  (c-name "gst_event_parse_protection")
  (return-type "none")
  (parameters
    '("const-gchar**" "system_id")
    '("GstBuffer**" "data")
    '("const-gchar**" "origin")
  )
)

(define-function gst_event_new_buffer_size
  (c-name "gst_event_new_buffer_size")
  (return-type "GstEvent*")
  (parameters
    '("GstFormat" "format")
    '("gint64" "minsize")
    '("gint64" "maxsize")
    '("gboolean" "async")
  )
)

(define-method parse_buffer_size
  (of-object "GstEvent")
  (c-name "gst_event_parse_buffer_size")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "minsize")
    '("gint64*" "maxsize")
    '("gboolean*" "async")
  )
)

(define-function gst_event_new_sink_message
  (c-name "gst_event_new_sink_message")
  (return-type "GstEvent*")
  (parameters
    '("const-gchar*" "name")
    '("GstMessage*" "msg")
  )
)

(define-method parse_sink_message
  (of-object "GstEvent")
  (c-name "gst_event_parse_sink_message")
  (return-type "none")
  (parameters
    '("GstMessage**" "msg")
  )
)

(define-function gst_event_new_qos
  (c-name "gst_event_new_qos")
  (return-type "GstEvent*")
  (parameters
    '("GstQOSType" "type")
    '("gdouble" "proportion")
    '("GstClockTimeDiff" "diff")
    '("GstClockTime" "timestamp")
  )
)

(define-method parse_qos
  (of-object "GstEvent")
  (c-name "gst_event_parse_qos")
  (return-type "none")
  (parameters
    '("GstQOSType*" "type")
    '("gdouble*" "proportion")
    '("GstClockTimeDiff*" "diff")
    '("GstClockTime*" "timestamp")
  )
)

(define-function gst_event_new_seek
  (c-name "gst_event_new_seek")
  (return-type "GstEvent*")
  (parameters
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("GstSeekFlags" "flags")
    '("GstSeekType" "start_type")
    '("gint64" "start")
    '("GstSeekType" "stop_type")
    '("gint64" "stop")
  )
)

(define-method parse_seek
  (of-object "GstEvent")
  (c-name "gst_event_parse_seek")
  (return-type "none")
  (parameters
    '("gdouble*" "rate")
    '("GstFormat*" "format")
    '("GstSeekFlags*" "flags")
    '("GstSeekType*" "start_type")
    '("gint64*" "start")
    '("GstSeekType*" "stop_type")
    '("gint64*" "stop")
  )
)

(define-function gst_event_new_navigation
  (c-name "gst_event_new_navigation")
  (return-type "GstEvent*")
  (parameters
    '("GstStructure*" "structure")
  )
)

(define-function gst_event_new_latency
  (c-name "gst_event_new_latency")
  (return-type "GstEvent*")
  (parameters
    '("GstClockTime" "latency")
  )
)

(define-method parse_latency
  (of-object "GstEvent")
  (c-name "gst_event_parse_latency")
  (return-type "none")
  (parameters
    '("GstClockTime*" "latency")
  )
)

(define-function gst_event_new_step
  (c-name "gst_event_new_step")
  (return-type "GstEvent*")
  (parameters
    '("GstFormat" "format")
    '("guint64" "amount")
    '("gdouble" "rate")
    '("gboolean" "flush")
    '("gboolean" "intermediate")
  )
)

(define-method parse_step
  (of-object "GstEvent")
  (c-name "gst_event_parse_step")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("guint64*" "amount")
    '("gdouble*" "rate")
    '("gboolean*" "flush")
    '("gboolean*" "intermediate")
  )
)

(define-function gst_event_new_reconfigure
  (c-name "gst_event_new_reconfigure")
  (return-type "GstEvent*")
)

(define-function gst_event_new_toc_select
  (c-name "gst_event_new_toc_select")
  (return-type "GstEvent*")
  (parameters
    '("const-gchar*" "uid")
  )
)

(define-method parse_toc_select
  (of-object "GstEvent")
  (c-name "gst_event_parse_toc_select")
  (return-type "none")
  (parameters
    '("gchar**" "uid")
  )
)

(define-function gst_event_new_segment_done
  (c-name "gst_event_new_segment_done")
  (return-type "GstEvent*")
  (parameters
    '("GstFormat" "format")
    '("gint64" "position")
  )
)

(define-method parse_segment_done
  (of-object "GstEvent")
  (c-name "gst_event_parse_segment_done")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "position")
  )
)



;; From gstformat.h

(define-method get_name
  (of-object "GstFormat")
  (c-name "gst_format_get_name")
  (return-type "const-gchar*")
)

(define-method to_quark
  (of-object "GstFormat")
  (c-name "gst_format_to_quark")
  (return-type "GQuark")
)

(define-function gst_format_register
  (c-name "gst_format_register")
  (return-type "GstFormat")
  (parameters
    '("const-gchar*" "nick")
    '("const-gchar*" "description")
  )
)

(define-function gst_format_get_by_nick
  (c-name "gst_format_get_by_nick")
  (return-type "GstFormat")
  (parameters
    '("const-gchar*" "nick")
  )
)

(define-method s_contains
  (of-object "GstFormat")
  (c-name "gst_formats_contains")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method get_details
  (of-object "GstFormat")
  (c-name "gst_format_get_details")
  (return-type "const-GstFormatDefinition*")
)

(define-function gst_format_iterate_definitions
  (c-name "gst_format_iterate_definitions")
  (return-type "GstIterator*")
)



;; From gstghostpad.h

(define-function gst_proxy_pad_get_type
  (c-name "gst_proxy_pad_get_type")
  (return-type "GType")
)

(define-method get_internal
  (of-object "GstProxyPad")
  (c-name "gst_proxy_pad_get_internal")
  (return-type "GstProxyPad*")
)

(define-function gst_proxy_pad_iterate_internal_links_default
  (c-name "gst_proxy_pad_iterate_internal_links_default")
  (return-type "GstIterator*")
  (parameters
    '("GstPad*" "pad")
    '("GstObject*" "parent")
  )
)

(define-function gst_proxy_pad_chain_default
  (c-name "gst_proxy_pad_chain_default")
  (return-type "GstFlowReturn")
  (parameters
    '("GstPad*" "pad")
    '("GstObject*" "parent")
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_proxy_pad_chain_list_default
  (c-name "gst_proxy_pad_chain_list_default")
  (return-type "GstFlowReturn")
  (parameters
    '("GstPad*" "pad")
    '("GstObject*" "parent")
    '("GstBufferList*" "list")
  )
)

(define-function gst_proxy_pad_getrange_default
  (c-name "gst_proxy_pad_getrange_default")
  (return-type "GstFlowReturn")
  (parameters
    '("GstPad*" "pad")
    '("GstObject*" "parent")
    '("guint64" "offset")
    '("guint" "size")
    '("GstBuffer**" "buffer")
  )
)

(define-function gst_ghost_pad_get_type
  (c-name "gst_ghost_pad_get_type")
  (return-type "GType")
)

(define-function gst_ghost_pad_new
  (c-name "gst_ghost_pad_new")
  (is-constructor-of "GstGhostPad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPad*" "target")
  )
)

(define-function gst_ghost_pad_new_no_target
  (c-name "gst_ghost_pad_new_no_target")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPadDirection" "dir")
  )
)

(define-function gst_ghost_pad_new_from_template
  (c-name "gst_ghost_pad_new_from_template")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPad*" "target")
    '("GstPadTemplate*" "templ")
  )
)

(define-function gst_ghost_pad_new_no_target_from_template
  (c-name "gst_ghost_pad_new_no_target_from_template")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPadTemplate*" "templ")
  )
)

(define-method get_target
  (of-object "GstGhostPad")
  (c-name "gst_ghost_pad_get_target")
  (return-type "GstPad*")
)

(define-method set_target
  (of-object "GstGhostPad")
  (c-name "gst_ghost_pad_set_target")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "newtarget")
  )
)

(define-method construct
  (of-object "GstGhostPad")
  (c-name "gst_ghost_pad_construct")
  (return-type "gboolean")
)

(define-function gst_ghost_pad_activate_mode_default
  (c-name "gst_ghost_pad_activate_mode_default")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
    '("GstObject*" "parent")
    '("GstPadMode" "mode")
    '("gboolean" "active")
  )
)

(define-function gst_ghost_pad_internal_activate_mode_default
  (c-name "gst_ghost_pad_internal_activate_mode_default")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
    '("GstObject*" "parent")
    '("GstPadMode" "mode")
    '("gboolean" "active")
  )
)



;; From gst.h

(define-function gst_init
  (c-name "gst_init")
  (return-type "none")
  (parameters
    '("int*" "argc")
    '("char**[]" "argv")
  )
)

(define-function gst_init_check
  (c-name "gst_init_check")
  (return-type "gboolean")
  (parameters
    '("int*" "argc")
    '("char**[]" "argv")
    '("GError**" "err")
  )
)

(define-function gst_is_initialized
  (c-name "gst_is_initialized")
  (return-type "gboolean")
)

(define-function gst_init_get_option_group
  (c-name "gst_init_get_option_group")
  (return-type "GOptionGroup*")
)

(define-function gst_deinit
  (c-name "gst_deinit")
  (return-type "none")
)

(define-function gst_version
  (c-name "gst_version")
  (return-type "none")
  (parameters
    '("guint*" "major")
    '("guint*" "minor")
    '("guint*" "micro")
    '("guint*" "nano")
  )
)

(define-function gst_version_string
  (c-name "gst_version_string")
  (return-type "gchar*")
)

(define-function gst_segtrap_is_enabled
  (c-name "gst_segtrap_is_enabled")
  (return-type "gboolean")
)

(define-function gst_segtrap_set_enabled
  (c-name "gst_segtrap_set_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-function gst_registry_fork_is_enabled
  (c-name "gst_registry_fork_is_enabled")
  (return-type "gboolean")
)

(define-function gst_registry_fork_set_enabled
  (c-name "gst_registry_fork_set_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-function gst_update_registry
  (c-name "gst_update_registry")
  (return-type "gboolean")
)



;; From gst-i18n-app.h



;; From gst-i18n-lib.h



;; From gstinfo.h

(define-function gst_debug_log
  (c-name "gst_debug_log")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "category")
    '("GstDebugLevel" "level")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
    '("GObject*" "object")
    '("const-gchar*" "format")
  )
  (varargs #t)
)

(define-function gst_debug_log_valist
  (c-name "gst_debug_log_valist")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "category")
    '("GstDebugLevel" "level")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
    '("GObject*" "object")
    '("const-gchar*" "format")
    '("va_list" "args")
  )
)

(define-method get
  (of-object "GstDebugMessage")
  (c-name "gst_debug_message_get")
  (return-type "const-gchar*")
)

(define-function gst_debug_log_default
  (c-name "gst_debug_log_default")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "category")
    '("GstDebugLevel" "level")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
    '("GObject*" "object")
    '("GstDebugMessage*" "message")
    '("gpointer" "user_data")
  )
)

(define-method get_name
  (of-object "GstDebugLevel")
  (c-name "gst_debug_level_get_name")
  (return-type "const-gchar*")
)

(define-function gst_debug_add_log_function
  (c-name "gst_debug_add_log_function")
  (return-type "none")
  (parameters
    '("GstLogFunction" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-function gst_debug_remove_log_function
  (c-name "gst_debug_remove_log_function")
  (return-type "guint")
  (parameters
    '("GstLogFunction" "func")
  )
)

(define-function gst_debug_remove_log_function_by_data
  (c-name "gst_debug_remove_log_function_by_data")
  (return-type "guint")
  (parameters
    '("gpointer" "data")
  )
)

(define-function gst_debug_set_active
  (c-name "gst_debug_set_active")
  (return-type "none")
  (parameters
    '("gboolean" "active")
  )
)

(define-function gst_debug_is_active
  (c-name "gst_debug_is_active")
  (return-type "gboolean")
)

(define-function gst_debug_set_colored
  (c-name "gst_debug_set_colored")
  (return-type "none")
  (parameters
    '("gboolean" "colored")
  )
)

(define-function gst_debug_set_color_mode
  (c-name "gst_debug_set_color_mode")
  (return-type "none")
  (parameters
    '("GstDebugColorMode" "mode")
  )
)

(define-function gst_debug_set_color_mode_from_string
  (c-name "gst_debug_set_color_mode_from_string")
  (return-type "none")
  (parameters
    '("const-gchar*" "mode")
  )
)

(define-function gst_debug_is_colored
  (c-name "gst_debug_is_colored")
  (return-type "gboolean")
)

(define-function gst_debug_get_color_mode
  (c-name "gst_debug_get_color_mode")
  (return-type "GstDebugColorMode")
)

(define-function gst_debug_set_default_threshold
  (c-name "gst_debug_set_default_threshold")
  (return-type "none")
  (parameters
    '("GstDebugLevel" "level")
  )
)

(define-function gst_debug_get_default_threshold
  (c-name "gst_debug_get_default_threshold")
  (return-type "GstDebugLevel")
)

(define-function gst_debug_set_threshold_for_name
  (c-name "gst_debug_set_threshold_for_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("GstDebugLevel" "level")
  )
)

(define-function gst_debug_set_threshold_from_string
  (c-name "gst_debug_set_threshold_from_string")
  (return-type "none")
  (parameters
    '("const-gchar*" "list")
    '("gboolean" "reset")
  )
)

(define-function gst_debug_unset_threshold_for_name
  (c-name "gst_debug_unset_threshold_for_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method free
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_free")
  (return-type "none")
)

(define-method set_threshold
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_set_threshold")
  (return-type "none")
  (parameters
    '("GstDebugLevel" "level")
  )
)

(define-method reset_threshold
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_reset_threshold")
  (return-type "none")
)

(define-method get_threshold
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_get_threshold")
  (return-type "GstDebugLevel")
)

(define-method get_name
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_get_name")
  (return-type "const-gchar*")
)

(define-method get_color
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_get_color")
  (return-type "guint")
)

(define-method get_description
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_get_description")
  (return-type "const-gchar*")
)

(define-function gst_debug_get_all_categories
  (c-name "gst_debug_get_all_categories")
  (return-type "GSList*")
)

(define-function gst_debug_construct_term_color
  (c-name "gst_debug_construct_term_color")
  (return-type "gchar*")
  (parameters
    '("guint" "colorinfo")
  )
)

(define-function gst_debug_construct_win_color
  (c-name "gst_debug_construct_win_color")
  (return-type "gint")
  (parameters
    '("guint" "colorinfo")
  )
)

(define-function gst_info_vasprintf
  (c-name "gst_info_vasprintf")
  (return-type "gint")
  (parameters
    '("gchar**" "result")
    '("const-gchar*" "format")
    '("va_list" "args")
  )
)

(define-function gst_info_strdup_vprintf
  (c-name "gst_info_strdup_vprintf")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "format")
    '("va_list" "args")
  )
)

(define-function gst_info_strdup_printf
  (c-name "gst_info_strdup_printf")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_LEVEL_LOG_valist
  (c-name "GST_CAT_LEVEL_LOG_valist")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("GstDebugLevel" "level")
    '("gpointer" "object")
    '("const-char*" "format")
    '("va_list" "varargs")
  )
)

(define-function GST_CAT_LEVEL_LOG
  (c-name "GST_CAT_LEVEL_LOG")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("GstDebugLevel" "level")
    '("gpointer" "object")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_ERROR_OBJECT
  (c-name "GST_CAT_ERROR_OBJECT")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_WARNING_OBJECT
  (c-name "GST_CAT_WARNING_OBJECT")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_INFO_OBJECT
  (c-name "GST_CAT_INFO_OBJECT")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_DEBUG_OBJECT
  (c-name "GST_CAT_DEBUG_OBJECT")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_LOG_OBJECT
  (c-name "GST_CAT_LOG_OBJECT")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_FIXME_OBJECT
  (c-name "GST_CAT_FIXME_OBJECT")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_TRACE_OBJECT
  (c-name "GST_CAT_TRACE_OBJECT")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_ERROR
  (c-name "GST_CAT_ERROR")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_WARNING
  (c-name "GST_CAT_WARNING")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_INFO
  (c-name "GST_CAT_INFO")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_DEBUG
  (c-name "GST_CAT_DEBUG")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_LOG
  (c-name "GST_CAT_LOG")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_FIXME
  (c-name "GST_CAT_FIXME")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_CAT_TRACE
  (c-name "GST_CAT_TRACE")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "cat")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_ERROR_OBJECT
  (c-name "GST_ERROR_OBJECT")
  (return-type "none")
  (parameters
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_WARNING_OBJECT
  (c-name "GST_WARNING_OBJECT")
  (return-type "none")
  (parameters
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_INFO_OBJECT
  (c-name "GST_INFO_OBJECT")
  (return-type "none")
  (parameters
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_DEBUG_OBJECT
  (c-name "GST_DEBUG_OBJECT")
  (return-type "none")
  (parameters
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_LOG_OBJECT
  (c-name "GST_LOG_OBJECT")
  (return-type "none")
  (parameters
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_FIXME_OBJECT
  (c-name "GST_FIXME_OBJECT")
  (return-type "none")
  (parameters
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_TRACE_OBJECT
  (c-name "GST_TRACE_OBJECT")
  (return-type "none")
  (parameters
    '("gpointer" "obj")
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_ERROR
  (c-name "GST_ERROR")
  (return-type "none")
  (parameters
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_WARNING
  (c-name "GST_WARNING")
  (return-type "none")
  (parameters
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_INFO
  (c-name "GST_INFO")
  (return-type "none")
  (parameters
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_DEBUG
  (c-name "GST_DEBUG")
  (return-type "none")
  (parameters
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_LOG
  (c-name "GST_LOG")
  (return-type "none")
  (parameters
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_FIXME
  (c-name "GST_FIXME")
  (return-type "none")
  (parameters
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function GST_TRACE
  (c-name "GST_TRACE")
  (return-type "none")
  (parameters
    '("const-char*" "format")
  )
  (varargs #t)
)

(define-function gst_debug_print_stack_trace
  (c-name "gst_debug_print_stack_trace")
  (return-type "none")
)



;; From gstiterator.h

(define-function gst_iterator_get_type
  (c-name "gst_iterator_get_type")
  (return-type "GType")
)

(define-function gst_iterator_new
  (c-name "gst_iterator_new")
  (is-constructor-of "GstIterator")
  (return-type "GstIterator*")
  (parameters
    '("guint" "size")
    '("GType" "type")
    '("GMutex*" "lock")
    '("guint32*" "master_cookie")
    '("GstIteratorCopyFunction" "copy")
    '("GstIteratorNextFunction" "next")
    '("GstIteratorItemFunction" "item")
    '("GstIteratorResyncFunction" "resync")
    '("GstIteratorFreeFunction" "free")
  )
)

(define-function gst_iterator_new_list
  (c-name "gst_iterator_new_list")
  (return-type "GstIterator*")
  (parameters
    '("GType" "type")
    '("GMutex*" "lock")
    '("guint32*" "master_cookie")
    '("GList**" "list")
    '("GObject*" "owner")
    '("GstIteratorItemFunction" "item")
  )
)

(define-function gst_iterator_new_single
  (c-name "gst_iterator_new_single")
  (return-type "GstIterator*")
  (parameters
    '("GType" "type")
    '("const-GValue*" "object")
  )
)

(define-method copy
  (of-object "GstIterator")
  (c-name "gst_iterator_copy")
  (return-type "GstIterator*")
)

(define-method next
  (of-object "GstIterator")
  (c-name "gst_iterator_next")
  (return-type "GstIteratorResult")
  (parameters
    '("GValue*" "elem")
  )
)

(define-method resync
  (of-object "GstIterator")
  (c-name "gst_iterator_resync")
  (return-type "none")
)

(define-method free
  (of-object "GstIterator")
  (c-name "gst_iterator_free")
  (return-type "none")
)

(define-method push
  (of-object "GstIterator")
  (c-name "gst_iterator_push")
  (return-type "none")
  (parameters
    '("GstIterator*" "other")
  )
)

(define-method filter
  (of-object "GstIterator")
  (c-name "gst_iterator_filter")
  (return-type "GstIterator*")
  (parameters
    '("GCompareFunc" "func")
    '("const-GValue*" "user_data")
  )
)

(define-method fold
  (of-object "GstIterator")
  (c-name "gst_iterator_fold")
  (return-type "GstIteratorResult")
  (parameters
    '("GstIteratorFoldFunction" "func")
    '("GValue*" "ret")
    '("gpointer" "user_data")
  )
)

(define-method foreach
  (of-object "GstIterator")
  (c-name "gst_iterator_foreach")
  (return-type "GstIteratorResult")
  (parameters
    '("GstIteratorForeachFunction" "func")
    '("gpointer" "user_data")
  )
)

(define-method find_custom
  (of-object "GstIterator")
  (c-name "gst_iterator_find_custom")
  (return-type "gboolean")
  (parameters
    '("GCompareFunc" "func")
    '("GValue*" "elem")
    '("gpointer" "user_data")
  )
)



;; From gstmacros.h



;; From gstmemory.h

(define-function gst_memory_get_type
  (c-name "gst_memory_get_type")
  (return-type "GType")
)

(define-method init
  (of-object "GstMemory")
  (c-name "gst_memory_init")
  (return-type "none")
  (parameters
    '("GstMemoryFlags" "flags")
    '("GstAllocator*" "allocator")
    '("GstMemory*" "parent")
    '("gsize" "maxsize")
    '("gsize" "align")
    '("gsize" "offset")
    '("gsize" "size")
  )
)

(define-method is_type
  (of-object "GstMemory")
  (c-name "gst_memory_is_type")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "mem_type")
  )
)

(define-method ref
  (of-object "GstMemory")
  (c-name "gst_memory_ref")
  (return-type "GstMemory*")
)

(define-method unref
  (of-object "GstMemory")
  (c-name "gst_memory_unref")
  (return-type "none")
)

(define-method get_sizes
  (of-object "GstMemory")
  (c-name "gst_memory_get_sizes")
  (return-type "gsize")
  (parameters
    '("gsize*" "offset")
    '("gsize*" "maxsize")
  )
)

(define-method resize
  (of-object "GstMemory")
  (c-name "gst_memory_resize")
  (return-type "none")
  (parameters
    '("gssize" "offset")
    '("gsize" "size")
  )
)

(define-method make_mapped
  (of-object "GstMemory")
  (c-name "gst_memory_make_mapped")
  (return-type "GstMemory*")
  (parameters
    '("GstMapInfo*" "info")
    '("GstMapFlags" "flags")
  )
)

(define-method map
  (of-object "GstMemory")
  (c-name "gst_memory_map")
  (return-type "gboolean")
  (parameters
    '("GstMapInfo*" "info")
    '("GstMapFlags" "flags")
  )
)

(define-method unmap
  (of-object "GstMemory")
  (c-name "gst_memory_unmap")
  (return-type "none")
  (parameters
    '("GstMapInfo*" "info")
  )
)

(define-method copy
  (of-object "GstMemory")
  (c-name "gst_memory_copy")
  (return-type "GstMemory*")
  (parameters
    '("gssize" "offset")
    '("gssize" "size")
  )
)

(define-method share
  (of-object "GstMemory")
  (c-name "gst_memory_share")
  (return-type "GstMemory*")
  (parameters
    '("gssize" "offset")
    '("gssize" "size")
  )
)

(define-method is_span
  (of-object "GstMemory")
  (c-name "gst_memory_is_span")
  (return-type "gboolean")
  (parameters
    '("GstMemory*" "mem2")
    '("gsize*" "offset")
  )
)



;; From gstmessage.h

(define-function gst_message_get_type
  (c-name "gst_message_get_type")
  (return-type "GType")
)

(define-method get_name
  (of-object "GstMessageType")
  (c-name "gst_message_type_get_name")
  (return-type "const-gchar*")
)

(define-method to_quark
  (of-object "GstMessageType")
  (c-name "gst_message_type_to_quark")
  (return-type "GQuark")
)

(define-method ref
  (of-object "GstMessage")
  (c-name "gst_message_ref")
  (return-type "GstMessage*")
)

(define-method unref
  (of-object "GstMessage")
  (c-name "gst_message_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstMessage")
  (c-name "gst_message_copy")
  (return-type "GstMessage*")
)

(define-function gst_message_replace
  (c-name "gst_message_replace")
  (return-type "gboolean")
  (parameters
    '("GstMessage**" "old_message")
    '("GstMessage*" "new_message")
  )
)

(define-function gst_message_new_custom
  (c-name "gst_message_new_custom")
  (return-type "GstMessage*")
  (parameters
    '("GstMessageType" "type")
    '("GstObject*" "src")
    '("GstStructure*" "structure")
  )
)

(define-method get_structure
  (of-object "GstMessage")
  (c-name "gst_message_get_structure")
  (return-type "const-GstStructure*")
)

(define-method has_name
  (of-object "GstMessage")
  (c-name "gst_message_has_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_seqnum
  (of-object "GstMessage")
  (c-name "gst_message_get_seqnum")
  (return-type "guint32")
)

(define-method set_seqnum
  (of-object "GstMessage")
  (c-name "gst_message_set_seqnum")
  (return-type "none")
  (parameters
    '("guint32" "seqnum")
  )
)

(define-function gst_message_new_eos
  (c-name "gst_message_new_eos")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_error
  (c-name "gst_message_new_error")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GError*" "error")
    '("const-gchar*" "debug")
  )
)

(define-method parse_error
  (of-object "GstMessage")
  (c-name "gst_message_parse_error")
  (return-type "none")
  (parameters
    '("GError**" "gerror")
    '("gchar**" "debug")
  )
)

(define-function gst_message_new_warning
  (c-name "gst_message_new_warning")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GError*" "error")
    '("const-gchar*" "debug")
  )
)

(define-method parse_warning
  (of-object "GstMessage")
  (c-name "gst_message_parse_warning")
  (return-type "none")
  (parameters
    '("GError**" "gerror")
    '("gchar**" "debug")
  )
)

(define-function gst_message_new_info
  (c-name "gst_message_new_info")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GError*" "error")
    '("const-gchar*" "debug")
  )
)

(define-method parse_info
  (of-object "GstMessage")
  (c-name "gst_message_parse_info")
  (return-type "none")
  (parameters
    '("GError**" "gerror")
    '("gchar**" "debug")
  )
)

(define-function gst_message_new_tag
  (c-name "gst_message_new_tag")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstTagList*" "tag_list")
  )
)

(define-method parse_tag
  (of-object "GstMessage")
  (c-name "gst_message_parse_tag")
  (return-type "none")
  (parameters
    '("GstTagList**" "tag_list")
  )
)

(define-function gst_message_new_buffering
  (c-name "gst_message_new_buffering")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gint" "percent")
  )
)

(define-method parse_buffering
  (of-object "GstMessage")
  (c-name "gst_message_parse_buffering")
  (return-type "none")
  (parameters
    '("gint*" "percent")
  )
)

(define-method set_buffering_stats
  (of-object "GstMessage")
  (c-name "gst_message_set_buffering_stats")
  (return-type "none")
  (parameters
    '("GstBufferingMode" "mode")
    '("gint" "avg_in")
    '("gint" "avg_out")
    '("gint64" "buffering_left")
  )
)

(define-method parse_buffering_stats
  (of-object "GstMessage")
  (c-name "gst_message_parse_buffering_stats")
  (return-type "none")
  (parameters
    '("GstBufferingMode*" "mode")
    '("gint*" "avg_in")
    '("gint*" "avg_out")
    '("gint64*" "buffering_left")
  )
)

(define-function gst_message_new_state_changed
  (c-name "gst_message_new_state_changed")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstState" "oldstate")
    '("GstState" "newstate")
    '("GstState" "pending")
  )
)

(define-method parse_state_changed
  (of-object "GstMessage")
  (c-name "gst_message_parse_state_changed")
  (return-type "none")
  (parameters
    '("GstState*" "oldstate")
    '("GstState*" "newstate")
    '("GstState*" "pending")
  )
)

(define-function gst_message_new_state_dirty
  (c-name "gst_message_new_state_dirty")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_step_done
  (c-name "gst_message_new_step_done")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstFormat" "format")
    '("guint64" "amount")
    '("gdouble" "rate")
    '("gboolean" "flush")
    '("gboolean" "intermediate")
    '("guint64" "duration")
    '("gboolean" "eos")
  )
)

(define-method parse_step_done
  (of-object "GstMessage")
  (c-name "gst_message_parse_step_done")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("guint64*" "amount")
    '("gdouble*" "rate")
    '("gboolean*" "flush")
    '("gboolean*" "intermediate")
    '("guint64*" "duration")
    '("gboolean*" "eos")
  )
)

(define-function gst_message_new_clock_provide
  (c-name "gst_message_new_clock_provide")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstClock*" "clock")
    '("gboolean" "ready")
  )
)

(define-method parse_clock_provide
  (of-object "GstMessage")
  (c-name "gst_message_parse_clock_provide")
  (return-type "none")
  (parameters
    '("GstClock**" "clock")
    '("gboolean*" "ready")
  )
)

(define-function gst_message_new_clock_lost
  (c-name "gst_message_new_clock_lost")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstClock*" "clock")
  )
)

(define-method parse_clock_lost
  (of-object "GstMessage")
  (c-name "gst_message_parse_clock_lost")
  (return-type "none")
  (parameters
    '("GstClock**" "clock")
  )
)

(define-function gst_message_new_new_clock
  (c-name "gst_message_new_new_clock")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstClock*" "clock")
  )
)

(define-method parse_new_clock
  (of-object "GstMessage")
  (c-name "gst_message_parse_new_clock")
  (return-type "none")
  (parameters
    '("GstClock**" "clock")
  )
)

(define-function gst_message_new_application
  (c-name "gst_message_new_application")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstStructure*" "structure")
  )
)

(define-function gst_message_new_element
  (c-name "gst_message_new_element")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstStructure*" "structure")
  )
)

(define-function gst_message_new_segment_start
  (c-name "gst_message_new_segment_start")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstFormat" "format")
    '("gint64" "position")
  )
)

(define-method parse_segment_start
  (of-object "GstMessage")
  (c-name "gst_message_parse_segment_start")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "position")
  )
)

(define-function gst_message_new_segment_done
  (c-name "gst_message_new_segment_done")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstFormat" "format")
    '("gint64" "position")
  )
)

(define-method parse_segment_done
  (of-object "GstMessage")
  (c-name "gst_message_parse_segment_done")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "position")
  )
)

(define-function gst_message_new_duration_changed
  (c-name "gst_message_new_duration_changed")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_latency
  (c-name "gst_message_new_latency")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_async_start
  (c-name "gst_message_new_async_start")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_async_done
  (c-name "gst_message_new_async_done")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstClockTime" "running_time")
  )
)

(define-method parse_async_done
  (of-object "GstMessage")
  (c-name "gst_message_parse_async_done")
  (return-type "none")
  (parameters
    '("GstClockTime*" "running_time")
  )
)

(define-function gst_message_new_structure_change
  (c-name "gst_message_new_structure_change")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstStructureChangeType" "type")
    '("GstElement*" "owner")
    '("gboolean" "busy")
  )
)

(define-method parse_structure_change
  (of-object "GstMessage")
  (c-name "gst_message_parse_structure_change")
  (return-type "none")
  (parameters
    '("GstStructureChangeType*" "type")
    '("GstElement**" "owner")
    '("gboolean*" "busy")
  )
)

(define-function gst_message_new_stream_status
  (c-name "gst_message_new_stream_status")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstStreamStatusType" "type")
    '("GstElement*" "owner")
  )
)

(define-method parse_stream_status
  (of-object "GstMessage")
  (c-name "gst_message_parse_stream_status")
  (return-type "none")
  (parameters
    '("GstStreamStatusType*" "type")
    '("GstElement**" "owner")
  )
)

(define-method set_stream_status_object
  (of-object "GstMessage")
  (c-name "gst_message_set_stream_status_object")
  (return-type "none")
  (parameters
    '("const-GValue*" "object")
  )
)

(define-method get_stream_status_object
  (of-object "GstMessage")
  (c-name "gst_message_get_stream_status_object")
  (return-type "const-GValue*")
)

(define-function gst_message_new_request_state
  (c-name "gst_message_new_request_state")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstState" "state")
  )
)

(define-method parse_request_state
  (of-object "GstMessage")
  (c-name "gst_message_parse_request_state")
  (return-type "none")
  (parameters
    '("GstState*" "state")
  )
)

(define-function gst_message_new_step_start
  (c-name "gst_message_new_step_start")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gboolean" "active")
    '("GstFormat" "format")
    '("guint64" "amount")
    '("gdouble" "rate")
    '("gboolean" "flush")
    '("gboolean" "intermediate")
  )
)

(define-method parse_step_start
  (of-object "GstMessage")
  (c-name "gst_message_parse_step_start")
  (return-type "none")
  (parameters
    '("gboolean*" "active")
    '("GstFormat*" "format")
    '("guint64*" "amount")
    '("gdouble*" "rate")
    '("gboolean*" "flush")
    '("gboolean*" "intermediate")
  )
)

(define-function gst_message_new_qos
  (c-name "gst_message_new_qos")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gboolean" "live")
    '("guint64" "running_time")
    '("guint64" "stream_time")
    '("guint64" "timestamp")
    '("guint64" "duration")
  )
)

(define-method set_qos_values
  (of-object "GstMessage")
  (c-name "gst_message_set_qos_values")
  (return-type "none")
  (parameters
    '("gint64" "jitter")
    '("gdouble" "proportion")
    '("gint" "quality")
  )
)

(define-method set_qos_stats
  (of-object "GstMessage")
  (c-name "gst_message_set_qos_stats")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("guint64" "processed")
    '("guint64" "dropped")
  )
)

(define-method parse_qos
  (of-object "GstMessage")
  (c-name "gst_message_parse_qos")
  (return-type "none")
  (parameters
    '("gboolean*" "live")
    '("guint64*" "running_time")
    '("guint64*" "stream_time")
    '("guint64*" "timestamp")
    '("guint64*" "duration")
  )
)

(define-method parse_qos_values
  (of-object "GstMessage")
  (c-name "gst_message_parse_qos_values")
  (return-type "none")
  (parameters
    '("gint64*" "jitter")
    '("gdouble*" "proportion")
    '("gint*" "quality")
  )
)

(define-method parse_qos_stats
  (of-object "GstMessage")
  (c-name "gst_message_parse_qos_stats")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("guint64*" "processed")
    '("guint64*" "dropped")
  )
)

(define-function gst_message_new_progress
  (c-name "gst_message_new_progress")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstProgressType" "type")
    '("const-gchar*" "code")
    '("const-gchar*" "text")
  )
)

(define-method parse_progress
  (of-object "GstMessage")
  (c-name "gst_message_parse_progress")
  (return-type "none")
  (parameters
    '("GstProgressType*" "type")
    '("gchar**" "code")
    '("gchar**" "text")
  )
)

(define-function gst_message_new_toc
  (c-name "gst_message_new_toc")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstToc*" "toc")
    '("gboolean" "updated")
  )
)

(define-method parse_toc
  (of-object "GstMessage")
  (c-name "gst_message_parse_toc")
  (return-type "none")
  (parameters
    '("GstToc**" "toc")
    '("gboolean*" "updated")
  )
)

(define-function gst_message_new_reset_time
  (c-name "gst_message_new_reset_time")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstClockTime" "running_time")
  )
)

(define-method parse_reset_time
  (of-object "GstMessage")
  (c-name "gst_message_parse_reset_time")
  (return-type "none")
  (parameters
    '("GstClockTime*" "running_time")
  )
)

(define-function gst_message_new_stream_start
  (c-name "gst_message_new_stream_start")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-method set_group_id
  (of-object "GstMessage")
  (c-name "gst_message_set_group_id")
  (return-type "none")
  (parameters
    '("guint" "group_id")
  )
)

(define-method parse_group_id
  (of-object "GstMessage")
  (c-name "gst_message_parse_group_id")
  (return-type "gboolean")
  (parameters
    '("guint*" "group_id")
  )
)

(define-function gst_message_new_need_context
  (c-name "gst_message_new_need_context")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("const-gchar*" "context_type")
  )
)

(define-method parse_context_type
  (of-object "GstMessage")
  (c-name "gst_message_parse_context_type")
  (return-type "gboolean")
  (parameters
    '("const-gchar**" "context_type")
  )
)

(define-function gst_message_new_have_context
  (c-name "gst_message_new_have_context")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstContext*" "context")
  )
)

(define-method parse_have_context
  (of-object "GstMessage")
  (c-name "gst_message_parse_have_context")
  (return-type "none")
  (parameters
    '("GstContext**" "context")
  )
)

(define-function gst_message_new_device_added
  (c-name "gst_message_new_device_added")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstDevice*" "device")
  )
)

(define-method parse_device_added
  (of-object "GstMessage")
  (c-name "gst_message_parse_device_added")
  (return-type "none")
  (parameters
    '("GstDevice**" "device")
  )
)

(define-function gst_message_new_device_removed
  (c-name "gst_message_new_device_removed")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstDevice*" "device")
  )
)

(define-method parse_device_removed
  (of-object "GstMessage")
  (c-name "gst_message_parse_device_removed")
  (return-type "none")
  (parameters
    '("GstDevice**" "device")
  )
)



;; From gstmeta.h

(define-function gst_meta_api_type_register
  (c-name "gst_meta_api_type_register")
  (return-type "GType")
  (parameters
    '("const-gchar*" "api")
    '("const-gchar**" "tags")
  )
)

(define-function gst_meta_api_type_has_tag
  (c-name "gst_meta_api_type_has_tag")
  (return-type "gboolean")
  (parameters
    '("GType" "api")
    '("GQuark" "tag")
  )
)

(define-function gst_meta_register
  (c-name "gst_meta_register")
  (return-type "const-GstMetaInfo*")
  (parameters
    '("GType" "api")
    '("const-gchar*" "impl")
    '("gsize" "size")
    '("GstMetaInitFunction" "init_func")
    '("GstMetaFreeFunction" "free_func")
    '("GstMetaTransformFunction" "transform_func")
  )
)

(define-function gst_meta_get_info
  (c-name "gst_meta_get_info")
  (return-type "const-GstMetaInfo*")
  (parameters
    '("const-gchar*" "impl")
  )
)

(define-function gst_meta_api_type_get_tags
  (c-name "gst_meta_api_type_get_tags")
  (return-type "const-gchar*-const*")
  (parameters
    '("GType" "api")
  )
)



;; From gstminiobject.h

(define-method init
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_init")
  (return-type "none")
  (parameters
    '("guint" "flags")
    '("GType" "type")
    '("GstMiniObjectCopyFunction" "copy_func")
    '("GstMiniObjectDisposeFunction" "dispose_func")
    '("GstMiniObjectFreeFunction" "free_func")
  )
)

(define-method ref
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_ref")
  (return-type "GstMiniObject*")
)

(define-method unref
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_unref")
  (return-type "none")
)

(define-method weak_ref
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_weak_ref")
  (return-type "none")
  (parameters
    '("GstMiniObjectNotify" "notify")
    '("gpointer" "data")
  )
)

(define-method weak_unref
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_weak_unref")
  (return-type "none")
  (parameters
    '("GstMiniObjectNotify" "notify")
    '("gpointer" "data")
  )
)

(define-method lock
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_lock")
  (return-type "gboolean")
  (parameters
    '("GstLockFlags" "flags")
  )
)

(define-method unlock
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_unlock")
  (return-type "none")
  (parameters
    '("GstLockFlags" "flags")
  )
)

(define-method is_writable
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_is_writable")
  (return-type "gboolean")
)

(define-method make_writable
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_make_writable")
  (return-type "GstMiniObject*")
)

(define-method copy
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_copy")
  (return-type "GstMiniObject*")
)

(define-method set_qdata
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_set_qdata")
  (return-type "none")
  (parameters
    '("GQuark" "quark")
    '("gpointer" "data")
    '("GDestroyNotify" "destroy")
  )
)

(define-method get_qdata
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_get_qdata")
  (return-type "gpointer")
  (parameters
    '("GQuark" "quark")
  )
)

(define-method steal_qdata
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_steal_qdata")
  (return-type "gpointer")
  (parameters
    '("GQuark" "quark")
  )
)

(define-function gst_mini_object_replace
  (c-name "gst_mini_object_replace")
  (return-type "gboolean")
  (parameters
    '("GstMiniObject**" "olddata")
    '("GstMiniObject*" "newdata")
  )
)

(define-function gst_mini_object_take
  (c-name "gst_mini_object_take")
  (return-type "gboolean")
  (parameters
    '("GstMiniObject**" "olddata")
    '("GstMiniObject*" "newdata")
  )
)

(define-function gst_mini_object_steal
  (c-name "gst_mini_object_steal")
  (return-type "GstMiniObject*")
  (parameters
    '("GstMiniObject**" "olddata")
  )
)



;; From gstobject.h

(define-function gst_object_get_type
  (c-name "gst_object_get_type")
  (return-type "GType")
)

(define-method set_name
  (of-object "GstObject")
  (c-name "gst_object_set_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_name
  (of-object "GstObject")
  (c-name "gst_object_get_name")
  (return-type "gchar*")
)

(define-method set_parent
  (of-object "GstObject")
  (c-name "gst_object_set_parent")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "parent")
  )
)

(define-method get_parent
  (of-object "GstObject")
  (c-name "gst_object_get_parent")
  (return-type "GstObject*")
)

(define-method unparent
  (of-object "GstObject")
  (c-name "gst_object_unparent")
  (return-type "none")
)

(define-method has_as_parent
  (of-object "GstObject")
  (c-name "gst_object_has_as_parent")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "parent")
  )
)

(define-method has_as_ancestor
  (of-object "GstObject")
  (c-name "gst_object_has_as_ancestor")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "ancestor")
  )
)

(define-method has_ancestor
  (of-object "GstObject")
  (c-name "gst_object_has_ancestor")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "ancestor")
  )
)

(define-function gst_object_default_deep_notify
  (c-name "gst_object_default_deep_notify")
  (return-type "none")
  (parameters
    '("GObject*" "object")
    '("GstObject*" "orig")
    '("GParamSpec*" "pspec")
    '("gchar**" "excluded_props")
  )
)

(define-function gst_object_ref
  (c-name "gst_object_ref")
  (return-type "gpointer")
  (parameters
    '("gpointer" "object")
  )
)

(define-function gst_object_unref
  (c-name "gst_object_unref")
  (return-type "none")
  (parameters
    '("gpointer" "object")
  )
)

(define-function gst_object_ref_sink
  (c-name "gst_object_ref_sink")
  (return-type "gpointer")
  (parameters
    '("gpointer" "object")
  )
)

(define-function gst_object_replace
  (c-name "gst_object_replace")
  (return-type "gboolean")
  (parameters
    '("GstObject**" "oldobj")
    '("GstObject*" "newobj")
  )
)

(define-method get_path_string
  (of-object "GstObject")
  (c-name "gst_object_get_path_string")
  (return-type "gchar*")
)

(define-function gst_object_check_uniqueness
  (c-name "gst_object_check_uniqueness")
  (return-type "gboolean")
  (parameters
    '("GList*" "list")
    '("const-gchar*" "name")
  )
)

(define-method suggest_next_sync
  (of-object "GstObject")
  (c-name "gst_object_suggest_next_sync")
  (return-type "GstClockTime")
)

(define-method sync_values
  (of-object "GstObject")
  (c-name "gst_object_sync_values")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
  )
)

(define-method has_active_control_bindings
  (of-object "GstObject")
  (c-name "gst_object_has_active_control_bindings")
  (return-type "gboolean")
)

(define-method set_control_bindings_disabled
  (of-object "GstObject")
  (c-name "gst_object_set_control_bindings_disabled")
  (return-type "none")
  (parameters
    '("gboolean" "disabled")
  )
)

(define-method set_control_binding_disabled
  (of-object "GstObject")
  (c-name "gst_object_set_control_binding_disabled")
  (return-type "none")
  (parameters
    '("const-gchar*" "property_name")
    '("gboolean" "disabled")
  )
)

(define-method add_control_binding
  (of-object "GstObject")
  (c-name "gst_object_add_control_binding")
  (return-type "gboolean")
  (parameters
    '("GstControlBinding*" "binding")
  )
)

(define-method get_control_binding
  (of-object "GstObject")
  (c-name "gst_object_get_control_binding")
  (return-type "GstControlBinding*")
  (parameters
    '("const-gchar*" "property_name")
  )
)

(define-method remove_control_binding
  (of-object "GstObject")
  (c-name "gst_object_remove_control_binding")
  (return-type "gboolean")
  (parameters
    '("GstControlBinding*" "binding")
  )
)

(define-method get_value
  (of-object "GstObject")
  (c-name "gst_object_get_value")
  (return-type "GValue*")
  (parameters
    '("const-gchar*" "property_name")
    '("GstClockTime" "timestamp")
  )
)

(define-method get_value_array
  (of-object "GstObject")
  (c-name "gst_object_get_value_array")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "property_name")
    '("GstClockTime" "timestamp")
    '("GstClockTime" "interval")
    '("guint" "n_values")
    '("gpointer" "values")
  )
)

(define-method get_g_value_array
  (of-object "GstObject")
  (c-name "gst_object_get_g_value_array")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "property_name")
    '("GstClockTime" "timestamp")
    '("GstClockTime" "interval")
    '("guint" "n_values")
    '("GValue*" "values")
  )
)

(define-method get_control_rate
  (of-object "GstObject")
  (c-name "gst_object_get_control_rate")
  (return-type "GstClockTime")
)

(define-method set_control_rate
  (of-object "GstObject")
  (c-name "gst_object_set_control_rate")
  (return-type "none")
  (parameters
    '("GstClockTime" "control_rate")
  )
)



;; From gstpad.h

(define-method get_name
  (of-object "GstPadMode")
  (c-name "gst_pad_mode_get_name")
  (return-type "const-gchar*")
)

(define-function gst_flow_get_name
  (c-name "gst_flow_get_name")
  (return-type "const-gchar*")
  (parameters
    '("GstFlowReturn" "ret")
  )
)

(define-function gst_flow_to_quark
  (c-name "gst_flow_to_quark")
  (return-type "GQuark")
  (parameters
    '("GstFlowReturn" "ret")
  )
)

(define-function gst_pad_link_get_name
  (c-name "gst_pad_link_get_name")
  (return-type "const-gchar*")
  (parameters
    '("GstPadLinkReturn" "ret")
  )
)

(define-method get_event
  (of-object "GstPadProbeInfo")
  (c-name "gst_pad_probe_info_get_event")
  (return-type "GstEvent*")
)

(define-method get_query
  (of-object "GstPadProbeInfo")
  (c-name "gst_pad_probe_info_get_query")
  (return-type "GstQuery*")
)

(define-method get_buffer
  (of-object "GstPadProbeInfo")
  (c-name "gst_pad_probe_info_get_buffer")
  (return-type "GstBuffer*")
)

(define-method get_buffer_list
  (of-object "GstPadProbeInfo")
  (c-name "gst_pad_probe_info_get_buffer_list")
  (return-type "GstBufferList*")
)

(define-function gst_pad_get_type
  (c-name "gst_pad_get_type")
  (return-type "GType")
)

(define-function gst_pad_new
  (c-name "gst_pad_new")
  (is-constructor-of "GstPad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPadDirection" "direction")
  )
)

(define-function gst_pad_new_from_template
  (c-name "gst_pad_new_from_template")
  (return-type "GstPad*")
  (parameters
    '("GstPadTemplate*" "templ")
    '("const-gchar*" "name")
  )
)

(define-function gst_pad_new_from_static_template
  (c-name "gst_pad_new_from_static_template")
  (return-type "GstPad*")
  (parameters
    '("GstStaticPadTemplate*" "templ")
    '("const-gchar*" "name")
  )
)

(define-method get_direction
  (of-object "GstPad")
  (c-name "gst_pad_get_direction")
  (return-type "GstPadDirection")
)

(define-method set_active
  (of-object "GstPad")
  (c-name "gst_pad_set_active")
  (return-type "gboolean")
  (parameters
    '("gboolean" "active")
  )
)

(define-method is_active
  (of-object "GstPad")
  (c-name "gst_pad_is_active")
  (return-type "gboolean")
)

(define-method activate_mode
  (of-object "GstPad")
  (c-name "gst_pad_activate_mode")
  (return-type "gboolean")
  (parameters
    '("GstPadMode" "mode")
    '("gboolean" "active")
  )
)

(define-method add_probe
  (of-object "GstPad")
  (c-name "gst_pad_add_probe")
  (return-type "gulong")
  (parameters
    '("GstPadProbeType" "mask")
    '("GstPadProbeCallback" "callback")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_data")
  )
)

(define-method remove_probe
  (of-object "GstPad")
  (c-name "gst_pad_remove_probe")
  (return-type "none")
  (parameters
    '("gulong" "id")
  )
)

(define-method is_blocked
  (of-object "GstPad")
  (c-name "gst_pad_is_blocked")
  (return-type "gboolean")
)

(define-method is_blocking
  (of-object "GstPad")
  (c-name "gst_pad_is_blocking")
  (return-type "gboolean")
)

(define-method mark_reconfigure
  (of-object "GstPad")
  (c-name "gst_pad_mark_reconfigure")
  (return-type "none")
)

(define-method needs_reconfigure
  (of-object "GstPad")
  (c-name "gst_pad_needs_reconfigure")
  (return-type "gboolean")
)

(define-method check_reconfigure
  (of-object "GstPad")
  (c-name "gst_pad_check_reconfigure")
  (return-type "gboolean")
)

(define-method set_element_private
  (of-object "GstPad")
  (c-name "gst_pad_set_element_private")
  (return-type "none")
  (parameters
    '("gpointer" "priv")
  )
)

(define-method get_element_private
  (of-object "GstPad")
  (c-name "gst_pad_get_element_private")
  (return-type "gpointer")
)

(define-method get_pad_template
  (of-object "GstPad")
  (c-name "gst_pad_get_pad_template")
  (return-type "GstPadTemplate*")
)

(define-method store_sticky_event
  (of-object "GstPad")
  (c-name "gst_pad_store_sticky_event")
  (return-type "GstFlowReturn")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method get_sticky_event
  (of-object "GstPad")
  (c-name "gst_pad_get_sticky_event")
  (return-type "GstEvent*")
  (parameters
    '("GstEventType" "event_type")
    '("guint" "idx")
  )
)

(define-method sticky_events_foreach
  (of-object "GstPad")
  (c-name "gst_pad_sticky_events_foreach")
  (return-type "none")
  (parameters
    '("GstPadStickyEventsForeachFunction" "foreach_func")
    '("gpointer" "user_data")
  )
)

(define-method set_activate_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_activate_function_full")
  (return-type "none")
  (parameters
    '("GstPadActivateFunction" "activate")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_activatemode_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_activatemode_function_full")
  (return-type "none")
  (parameters
    '("GstPadActivateModeFunction" "activatemode")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_chain_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_chain_function_full")
  (return-type "none")
  (parameters
    '("GstPadChainFunction" "chain")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_chain_list_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_chain_list_function_full")
  (return-type "none")
  (parameters
    '("GstPadChainListFunction" "chainlist")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_getrange_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_getrange_function_full")
  (return-type "none")
  (parameters
    '("GstPadGetRangeFunction" "get")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_event_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_event_function_full")
  (return-type "none")
  (parameters
    '("GstPadEventFunction" "event")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_event_full_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_event_full_function_full")
  (return-type "none")
  (parameters
    '("GstPadEventFullFunction" "event")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_link_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_link_function_full")
  (return-type "none")
  (parameters
    '("GstPadLinkFunction" "link")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_unlink_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_unlink_function_full")
  (return-type "none")
  (parameters
    '("GstPadUnlinkFunction" "unlink")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method can_link
  (of-object "GstPad")
  (c-name "gst_pad_can_link")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "sinkpad")
  )
)

(define-method link
  (of-object "GstPad")
  (c-name "gst_pad_link")
  (return-type "GstPadLinkReturn")
  (parameters
    '("GstPad*" "sinkpad")
  )
)

(define-method link_full
  (of-object "GstPad")
  (c-name "gst_pad_link_full")
  (return-type "GstPadLinkReturn")
  (parameters
    '("GstPad*" "sinkpad")
    '("GstPadLinkCheck" "flags")
  )
)

(define-method unlink
  (of-object "GstPad")
  (c-name "gst_pad_unlink")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "sinkpad")
  )
)

(define-method is_linked
  (of-object "GstPad")
  (c-name "gst_pad_is_linked")
  (return-type "gboolean")
)

(define-method get_peer
  (of-object "GstPad")
  (c-name "gst_pad_get_peer")
  (return-type "GstPad*")
)

(define-method get_pad_template_caps
  (of-object "GstPad")
  (c-name "gst_pad_get_pad_template_caps")
  (return-type "GstCaps*")
)

(define-method get_current_caps
  (of-object "GstPad")
  (c-name "gst_pad_get_current_caps")
  (return-type "GstCaps*")
)

(define-method has_current_caps
  (of-object "GstPad")
  (c-name "gst_pad_has_current_caps")
  (return-type "gboolean")
)

(define-method get_allowed_caps
  (of-object "GstPad")
  (c-name "gst_pad_get_allowed_caps")
  (return-type "GstCaps*")
)

(define-method get_offset
  (of-object "GstPad")
  (c-name "gst_pad_get_offset")
  (return-type "gint64")
)

(define-method set_offset
  (of-object "GstPad")
  (c-name "gst_pad_set_offset")
  (return-type "none")
  (parameters
    '("gint64" "offset")
  )
)

(define-method push
  (of-object "GstPad")
  (c-name "gst_pad_push")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method push_list
  (of-object "GstPad")
  (c-name "gst_pad_push_list")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-method pull_range
  (of-object "GstPad")
  (c-name "gst_pad_pull_range")
  (return-type "GstFlowReturn")
  (parameters
    '("guint64" "offset")
    '("guint" "size")
    '("GstBuffer**" "buffer")
  )
)

(define-method push_event
  (of-object "GstPad")
  (c-name "gst_pad_push_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method event_default
  (of-object "GstPad")
  (c-name "gst_pad_event_default")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "parent")
    '("GstEvent*" "event")
  )
)

(define-method get_last_flow_return
  (of-object "GstPad")
  (c-name "gst_pad_get_last_flow_return")
  (return-type "GstFlowReturn")
)

(define-method chain
  (of-object "GstPad")
  (c-name "gst_pad_chain")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method chain_list
  (of-object "GstPad")
  (c-name "gst_pad_chain_list")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-method get_range
  (of-object "GstPad")
  (c-name "gst_pad_get_range")
  (return-type "GstFlowReturn")
  (parameters
    '("guint64" "offset")
    '("guint" "size")
    '("GstBuffer**" "buffer")
  )
)

(define-method send_event
  (of-object "GstPad")
  (c-name "gst_pad_send_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method start_task
  (of-object "GstPad")
  (c-name "gst_pad_start_task")
  (return-type "gboolean")
  (parameters
    '("GstTaskFunction" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method pause_task
  (of-object "GstPad")
  (c-name "gst_pad_pause_task")
  (return-type "gboolean")
)

(define-method stop_task
  (of-object "GstPad")
  (c-name "gst_pad_stop_task")
  (return-type "gboolean")
)

(define-method set_iterate_internal_links_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_iterate_internal_links_function_full")
  (return-type "none")
  (parameters
    '("GstPadIterIntLinkFunction" "iterintlink")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method iterate_internal_links
  (of-object "GstPad")
  (c-name "gst_pad_iterate_internal_links")
  (return-type "GstIterator*")
)

(define-method iterate_internal_links_default
  (of-object "GstPad")
  (c-name "gst_pad_iterate_internal_links_default")
  (return-type "GstIterator*")
  (parameters
    '("GstObject*" "parent")
  )
)

(define-method query
  (of-object "GstPad")
  (c-name "gst_pad_query")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method peer_query
  (of-object "GstPad")
  (c-name "gst_pad_peer_query")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method set_query_function_full
  (of-object "GstPad")
  (c-name "gst_pad_set_query_function_full")
  (return-type "none")
  (parameters
    '("GstPadQueryFunction" "query")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method query_default
  (of-object "GstPad")
  (c-name "gst_pad_query_default")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "parent")
    '("GstQuery*" "query")
  )
)

(define-method forward
  (of-object "GstPad")
  (c-name "gst_pad_forward")
  (return-type "gboolean")
  (parameters
    '("GstPadForwardFunction" "forward")
    '("gpointer" "user_data")
  )
)



;; From gstpadtemplate.h

(define-function gst_pad_template_get_type
  (c-name "gst_pad_template_get_type")
  (return-type "GType")
)

(define-function gst_static_pad_template_get_type
  (c-name "gst_static_pad_template_get_type")
  (return-type "GType")
)

(define-function gst_pad_template_new
  (c-name "gst_pad_template_new")
  (is-constructor-of "GstPadTemplate")
  (return-type "GstPadTemplate*")
  (parameters
    '("const-gchar*" "name_template")
    '("GstPadDirection" "direction")
    '("GstPadPresence" "presence")
    '("GstCaps*" "caps")
  )
)

(define-method get
  (of-object "GstStaticPadTemplate")
  (c-name "gst_static_pad_template_get")
  (return-type "GstPadTemplate*")
)

(define-method get_caps
  (of-object "GstStaticPadTemplate")
  (c-name "gst_static_pad_template_get_caps")
  (return-type "GstCaps*")
)

(define-method get_caps
  (of-object "GstPadTemplate")
  (c-name "gst_pad_template_get_caps")
  (return-type "GstCaps*")
)

(define-method pad_created
  (of-object "GstPadTemplate")
  (c-name "gst_pad_template_pad_created")
  (return-type "none")
  (parameters
    '("GstPad*" "pad")
  )
)



;; From gstparamspecs.h

(define-function gst_param_spec_fraction_get_type
  (c-name "gst_param_spec_fraction_get_type")
  (return-type "GType")
)

(define-function gst_param_spec_fraction
  (c-name "gst_param_spec_fraction")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("gint" "min_num")
    '("gint" "min_denom")
    '("gint" "max_num")
    '("gint" "max_denom")
    '("gint" "default_num")
    '("gint" "default_denom")
    '("GParamFlags" "flags")
  )
)



;; From gstparse.h

(define-function gst_parse_error_quark
  (c-name "gst_parse_error_quark")
  (return-type "GQuark")
)

(define-function gst_parse_context_get_type
  (c-name "gst_parse_context_get_type")
  (return-type "GType")
)

(define-function gst_parse_context_new
  (c-name "gst_parse_context_new")
  (is-constructor-of "GstParseContext")
  (return-type "GstParseContext*")
)

(define-method get_missing_elements
  (of-object "GstParseContext")
  (c-name "gst_parse_context_get_missing_elements")
  (return-type "gchar**")
)

(define-method free
  (of-object "GstParseContext")
  (c-name "gst_parse_context_free")
  (return-type "none")
)

(define-function gst_parse_launch
  (c-name "gst_parse_launch")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "pipeline_description")
    '("GError**" "error")
  )
)

(define-function gst_parse_launchv
  (c-name "gst_parse_launchv")
  (return-type "GstElement*")
  (parameters
    '("const-gchar**" "argv")
    '("GError**" "error")
  )
)

(define-function gst_parse_launch_full
  (c-name "gst_parse_launch_full")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "pipeline_description")
    '("GstParseContext*" "context")
    '("GstParseFlags" "flags")
    '("GError**" "error")
  )
)

(define-function gst_parse_launchv_full
  (c-name "gst_parse_launchv_full")
  (return-type "GstElement*")
  (parameters
    '("const-gchar**" "argv")
    '("GstParseContext*" "context")
    '("GstParseFlags" "flags")
    '("GError**" "error")
  )
)



;; From gstpipeline.h

(define-function gst_pipeline_get_type
  (c-name "gst_pipeline_get_type")
  (return-type "GType")
)

(define-function gst_pipeline_new
  (c-name "gst_pipeline_new")
  (is-constructor-of "GstPipeline")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_bus
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_bus")
  (return-type "GstBus*")
)

(define-method use_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_use_clock")
  (return-type "none")
  (parameters
    '("GstClock*" "clock")
  )
)

(define-method set_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_set_clock")
  (return-type "gboolean")
  (parameters
    '("GstClock*" "clock")
  )
)

(define-method get_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_clock")
  (return-type "GstClock*")
)

(define-method get_pipeline_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_pipeline_clock")
  (return-type "GstClock*")
)

(define-method auto_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_auto_clock")
  (return-type "none")
)

(define-method set_delay
  (of-object "GstPipeline")
  (c-name "gst_pipeline_set_delay")
  (return-type "none")
  (parameters
    '("GstClockTime" "delay")
  )
)

(define-method get_delay
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_delay")
  (return-type "GstClockTime")
)

(define-method set_latency
  (of-object "GstPipeline")
  (c-name "gst_pipeline_set_latency")
  (return-type "none")
  (parameters
    '("GstClockTime" "latency")
  )
)

(define-method get_latency
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_latency")
  (return-type "GstClockTime")
)

(define-method set_auto_flush_bus
  (of-object "GstPipeline")
  (c-name "gst_pipeline_set_auto_flush_bus")
  (return-type "none")
  (parameters
    '("gboolean" "auto_flush")
  )
)

(define-method get_auto_flush_bus
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_auto_flush_bus")
  (return-type "gboolean")
)



;; From gstpluginfeature.h

(define-function gst_plugin_feature_get_type
  (c-name "gst_plugin_feature_get_type")
  (return-type "GType")
)

(define-method load
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_load")
  (return-type "GstPluginFeature*")
)

(define-method set_rank
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_set_rank")
  (return-type "none")
  (parameters
    '("guint" "rank")
  )
)

(define-method get_rank
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_get_rank")
  (return-type "guint")
)

(define-method get_plugin
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_get_plugin")
  (return-type "GstPlugin*")
)

(define-method get_plugin_name
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_get_plugin_name")
  (return-type "const-gchar*")
)

(define-function gst_plugin_feature_list_free
  (c-name "gst_plugin_feature_list_free")
  (return-type "none")
  (parameters
    '("GList*" "list")
  )
)

(define-function gst_plugin_feature_list_copy
  (c-name "gst_plugin_feature_list_copy")
  (return-type "GList*")
  (parameters
    '("GList*" "list")
  )
)

(define-function gst_plugin_feature_list_debug
  (c-name "gst_plugin_feature_list_debug")
  (return-type "none")
  (parameters
    '("GList*" "list")
  )
)

(define-method check_version
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_check_version")
  (return-type "gboolean")
  (parameters
    '("guint" "min_major")
    '("guint" "min_minor")
    '("guint" "min_micro")
  )
)

(define-function gst_plugin_feature_rank_compare_func
  (c-name "gst_plugin_feature_rank_compare_func")
  (return-type "gint")
  (parameters
    '("gconstpointer" "p1")
    '("gconstpointer" "p2")
  )
)



;; From gstplugin.h

(define-function gst_plugin_error_quark
  (c-name "gst_plugin_error_quark")
  (return-type "GQuark")
)

(define-function gst_plugin_get_type
  (c-name "gst_plugin_get_type")
  (return-type "GType")
)

(define-function gst_plugin_register_static
  (c-name "gst_plugin_register_static")
  (return-type "gboolean")
  (parameters
    '("gint" "major_version")
    '("gint" "minor_version")
    '("const-gchar*" "name")
    '("const-gchar*" "description")
    '("GstPluginInitFunc" "init_func")
    '("const-gchar*" "version")
    '("const-gchar*" "license")
    '("const-gchar*" "source")
    '("const-gchar*" "package")
    '("const-gchar*" "origin")
  )
)

(define-function gst_plugin_register_static_full
  (c-name "gst_plugin_register_static_full")
  (return-type "gboolean")
  (parameters
    '("gint" "major_version")
    '("gint" "minor_version")
    '("const-gchar*" "name")
    '("const-gchar*" "description")
    '("GstPluginInitFullFunc" "init_full_func")
    '("const-gchar*" "version")
    '("const-gchar*" "license")
    '("const-gchar*" "source")
    '("const-gchar*" "package")
    '("const-gchar*" "origin")
    '("gpointer" "user_data")
  )
)

(define-method get_name
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_name")
  (return-type "const-gchar*")
)

(define-method get_description
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_description")
  (return-type "const-gchar*")
)

(define-method get_filename
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_filename")
  (return-type "const-gchar*")
)

(define-method get_version
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_version")
  (return-type "const-gchar*")
)

(define-method get_license
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_license")
  (return-type "const-gchar*")
)

(define-method get_source
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_source")
  (return-type "const-gchar*")
)

(define-method get_package
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_package")
  (return-type "const-gchar*")
)

(define-method get_origin
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_origin")
  (return-type "const-gchar*")
)

(define-method get_release_date_string
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_release_date_string")
  (return-type "const-gchar*")
)

(define-method get_cache_data
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_cache_data")
  (return-type "const-GstStructure*")
)

(define-method set_cache_data
  (of-object "GstPlugin")
  (c-name "gst_plugin_set_cache_data")
  (return-type "none")
  (parameters
    '("GstStructure*" "cache_data")
  )
)

(define-method is_loaded
  (of-object "GstPlugin")
  (c-name "gst_plugin_is_loaded")
  (return-type "gboolean")
)

(define-function gst_plugin_load_file
  (c-name "gst_plugin_load_file")
  (return-type "GstPlugin*")
  (parameters
    '("const-gchar*" "filename")
    '("GError**" "error")
  )
)

(define-method load
  (of-object "GstPlugin")
  (c-name "gst_plugin_load")
  (return-type "GstPlugin*")
)

(define-function gst_plugin_load_by_name
  (c-name "gst_plugin_load_by_name")
  (return-type "GstPlugin*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method add_dependency
  (of-object "GstPlugin")
  (c-name "gst_plugin_add_dependency")
  (return-type "none")
  (parameters
    '("const-gchar**" "env_vars")
    '("const-gchar**" "paths")
    '("const-gchar**" "names")
    '("GstPluginDependencyFlags" "flags")
  )
)

(define-method add_dependency_simple
  (of-object "GstPlugin")
  (c-name "gst_plugin_add_dependency_simple")
  (return-type "none")
  (parameters
    '("const-gchar*" "env_vars")
    '("const-gchar*" "paths")
    '("const-gchar*" "names")
    '("GstPluginDependencyFlags" "flags")
  )
)

(define-function gst_plugin_list_free
  (c-name "gst_plugin_list_free")
  (return-type "none")
  (parameters
    '("GList*" "list")
  )
)



;; From gstpluginloader.h



;; From gstpoll.h

(define-function gst_poll_new
  (c-name "gst_poll_new")
  (is-constructor-of "GstPoll")
  (return-type "GstPoll*")
  (parameters
    '("gboolean" "controllable")
  )
)

(define-function gst_poll_new_timer
  (c-name "gst_poll_new_timer")
  (return-type "GstPoll*")
)

(define-method free
  (of-object "GstPoll")
  (c-name "gst_poll_free")
  (return-type "none")
)

(define-method get_read_gpollfd
  (of-object "GstPoll")
  (c-name "gst_poll_get_read_gpollfd")
  (return-type "none")
  (parameters
    '("GPollFD*" "fd")
  )
)

(define-method init
  (of-object "GstPollFD")
  (c-name "gst_poll_fd_init")
  (return-type "none")
)

(define-method add_fd
  (of-object "GstPoll")
  (c-name "gst_poll_add_fd")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method remove_fd
  (of-object "GstPoll")
  (c-name "gst_poll_remove_fd")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_ctl_write
  (of-object "GstPoll")
  (c-name "gst_poll_fd_ctl_write")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
    '("gboolean" "active")
  )
)

(define-method fd_ctl_read
  (of-object "GstPoll")
  (c-name "gst_poll_fd_ctl_read")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
    '("gboolean" "active")
  )
)

(define-method fd_ignored
  (of-object "GstPoll")
  (c-name "gst_poll_fd_ignored")
  (return-type "none")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_has_closed
  (of-object "GstPoll")
  (c-name "gst_poll_fd_has_closed")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_has_error
  (of-object "GstPoll")
  (c-name "gst_poll_fd_has_error")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_can_read
  (of-object "GstPoll")
  (c-name "gst_poll_fd_can_read")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_can_write
  (of-object "GstPoll")
  (c-name "gst_poll_fd_can_write")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method wait
  (of-object "GstPoll")
  (c-name "gst_poll_wait")
  (return-type "gint")
  (parameters
    '("GstClockTime" "timeout")
  )
)

(define-method set_controllable
  (of-object "GstPoll")
  (c-name "gst_poll_set_controllable")
  (return-type "gboolean")
  (parameters
    '("gboolean" "controllable")
  )
)

(define-method restart
  (of-object "GstPoll")
  (c-name "gst_poll_restart")
  (return-type "none")
)

(define-method set_flushing
  (of-object "GstPoll")
  (c-name "gst_poll_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method write_control
  (of-object "GstPoll")
  (c-name "gst_poll_write_control")
  (return-type "gboolean")
)

(define-method read_control
  (of-object "GstPoll")
  (c-name "gst_poll_read_control")
  (return-type "gboolean")
)



;; From gstpreset.h

(define-function gst_preset_get_type
  (c-name "gst_preset_get_type")
  (return-type "GType")
)

(define-method get_preset_names
  (of-object "GstPreset")
  (c-name "gst_preset_get_preset_names")
  (return-type "gchar**")
)

(define-method get_property_names
  (of-object "GstPreset")
  (c-name "gst_preset_get_property_names")
  (return-type "gchar**")
)

(define-method load_preset
  (of-object "GstPreset")
  (c-name "gst_preset_load_preset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method save_preset
  (of-object "GstPreset")
  (c-name "gst_preset_save_preset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method rename_preset
  (of-object "GstPreset")
  (c-name "gst_preset_rename_preset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "old_name")
    '("const-gchar*" "new_name")
  )
)

(define-method delete_preset
  (of-object "GstPreset")
  (c-name "gst_preset_delete_preset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_meta
  (of-object "GstPreset")
  (c-name "gst_preset_set_meta")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "tag")
    '("const-gchar*" "value")
  )
)

(define-method get_meta
  (of-object "GstPreset")
  (c-name "gst_preset_get_meta")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "tag")
    '("gchar**" "value")
  )
)

(define-function gst_preset_set_app_dir
  (c-name "gst_preset_set_app_dir")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "app_dir")
  )
)

(define-function gst_preset_get_app_dir
  (c-name "gst_preset_get_app_dir")
  (return-type "const-gchar*")
)

(define-method is_editable
  (of-object "GstPreset")
  (c-name "gst_preset_is_editable")
  (return-type "gboolean")
)



;; From gst_private.h



;; From gstprotection.h

(define-function gst_protection_meta_api_get_type
  (c-name "gst_protection_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_protection_meta_get_info
  (c-name "gst_protection_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_protection_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_protection_meta")
  (return-type "GstProtectionMeta*")
  (parameters
    '("GstStructure*" "info")
  )
)

(define-function gst_protection_select_system
  (c-name "gst_protection_select_system")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar**" "system_identifiers")
  )
)



;; From gstquark.h



;; From gstquery.h

(define-method get_name
  (of-object "GstQueryType")
  (c-name "gst_query_type_get_name")
  (return-type "const-gchar*")
)

(define-method to_quark
  (of-object "GstQueryType")
  (c-name "gst_query_type_to_quark")
  (return-type "GQuark")
)

(define-method get_flags
  (of-object "GstQueryType")
  (c-name "gst_query_type_get_flags")
  (return-type "GstQueryTypeFlags")
)

(define-function gst_query_get_type
  (c-name "gst_query_get_type")
  (return-type "GType")
)

(define-method ref
  (of-object "GstQuery")
  (c-name "gst_query_ref")
  (return-type "GstQuery*")
)

(define-method unref
  (of-object "GstQuery")
  (c-name "gst_query_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstQuery")
  (c-name "gst_query_copy")
  (return-type "GstQuery*")
)

(define-function gst_query_replace
  (c-name "gst_query_replace")
  (return-type "gboolean")
  (parameters
    '("GstQuery**" "old_query")
    '("GstQuery*" "new_query")
  )
)

(define-function gst_query_new_custom
  (c-name "gst_query_new_custom")
  (return-type "GstQuery*")
  (parameters
    '("GstQueryType" "type")
    '("GstStructure*" "structure")
  )
)

(define-method get_structure
  (of-object "GstQuery")
  (c-name "gst_query_get_structure")
  (return-type "const-GstStructure*")
)

(define-method writable_structure
  (of-object "GstQuery")
  (c-name "gst_query_writable_structure")
  (return-type "GstStructure*")
)

(define-function gst_query_new_position
  (c-name "gst_query_new_position")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_position
  (of-object "GstQuery")
  (c-name "gst_query_set_position")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gint64" "cur")
  )
)

(define-method parse_position
  (of-object "GstQuery")
  (c-name "gst_query_parse_position")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "cur")
  )
)

(define-function gst_query_new_duration
  (c-name "gst_query_new_duration")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_duration
  (of-object "GstQuery")
  (c-name "gst_query_set_duration")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gint64" "duration")
  )
)

(define-method parse_duration
  (of-object "GstQuery")
  (c-name "gst_query_parse_duration")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "duration")
  )
)

(define-function gst_query_new_latency
  (c-name "gst_query_new_latency")
  (return-type "GstQuery*")
)

(define-method set_latency
  (of-object "GstQuery")
  (c-name "gst_query_set_latency")
  (return-type "none")
  (parameters
    '("gboolean" "live")
    '("GstClockTime" "min_latency")
    '("GstClockTime" "max_latency")
  )
)

(define-method parse_latency
  (of-object "GstQuery")
  (c-name "gst_query_parse_latency")
  (return-type "none")
  (parameters
    '("gboolean*" "live")
    '("GstClockTime*" "min_latency")
    '("GstClockTime*" "max_latency")
  )
)

(define-function gst_query_new_convert
  (c-name "gst_query_new_convert")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "value")
    '("GstFormat" "dest_format")
  )
)

(define-method set_convert
  (of-object "GstQuery")
  (c-name "gst_query_set_convert")
  (return-type "none")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_value")
    '("GstFormat" "dest_format")
    '("gint64" "dest_value")
  )
)

(define-method parse_convert
  (of-object "GstQuery")
  (c-name "gst_query_parse_convert")
  (return-type "none")
  (parameters
    '("GstFormat*" "src_format")
    '("gint64*" "src_value")
    '("GstFormat*" "dest_format")
    '("gint64*" "dest_value")
  )
)

(define-function gst_query_new_segment
  (c-name "gst_query_new_segment")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_segment
  (of-object "GstQuery")
  (c-name "gst_query_set_segment")
  (return-type "none")
  (parameters
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("gint64" "start_value")
    '("gint64" "stop_value")
  )
)

(define-method parse_segment
  (of-object "GstQuery")
  (c-name "gst_query_parse_segment")
  (return-type "none")
  (parameters
    '("gdouble*" "rate")
    '("GstFormat*" "format")
    '("gint64*" "start_value")
    '("gint64*" "stop_value")
  )
)

(define-function gst_query_new_seeking
  (c-name "gst_query_new_seeking")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_seeking
  (of-object "GstQuery")
  (c-name "gst_query_set_seeking")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gboolean" "seekable")
    '("gint64" "segment_start")
    '("gint64" "segment_end")
  )
)

(define-method parse_seeking
  (of-object "GstQuery")
  (c-name "gst_query_parse_seeking")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gboolean*" "seekable")
    '("gint64*" "segment_start")
    '("gint64*" "segment_end")
  )
)

(define-function gst_query_new_formats
  (c-name "gst_query_new_formats")
  (return-type "GstQuery*")
)

(define-method set_formats
  (of-object "GstQuery")
  (c-name "gst_query_set_formats")
  (return-type "none")
  (parameters
    '("gint" "n_formats")
  )
  (varargs #t)
)

(define-method set_formatsv
  (of-object "GstQuery")
  (c-name "gst_query_set_formatsv")
  (return-type "none")
  (parameters
    '("gint" "n_formats")
    '("const-GstFormat*" "formats")
  )
)

(define-method parse_n_formats
  (of-object "GstQuery")
  (c-name "gst_query_parse_n_formats")
  (return-type "none")
  (parameters
    '("guint*" "n_formats")
  )
)

(define-method parse_nth_format
  (of-object "GstQuery")
  (c-name "gst_query_parse_nth_format")
  (return-type "none")
  (parameters
    '("guint" "nth")
    '("GstFormat*" "format")
  )
)

(define-function gst_query_new_buffering
  (c-name "gst_query_new_buffering")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_buffering_percent
  (of-object "GstQuery")
  (c-name "gst_query_set_buffering_percent")
  (return-type "none")
  (parameters
    '("gboolean" "busy")
    '("gint" "percent")
  )
)

(define-method parse_buffering_percent
  (of-object "GstQuery")
  (c-name "gst_query_parse_buffering_percent")
  (return-type "none")
  (parameters
    '("gboolean*" "busy")
    '("gint*" "percent")
  )
)

(define-method set_buffering_stats
  (of-object "GstQuery")
  (c-name "gst_query_set_buffering_stats")
  (return-type "none")
  (parameters
    '("GstBufferingMode" "mode")
    '("gint" "avg_in")
    '("gint" "avg_out")
    '("gint64" "buffering_left")
  )
)

(define-method parse_buffering_stats
  (of-object "GstQuery")
  (c-name "gst_query_parse_buffering_stats")
  (return-type "none")
  (parameters
    '("GstBufferingMode*" "mode")
    '("gint*" "avg_in")
    '("gint*" "avg_out")
    '("gint64*" "buffering_left")
  )
)

(define-method set_buffering_range
  (of-object "GstQuery")
  (c-name "gst_query_set_buffering_range")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64" "estimated_total")
  )
)

(define-method parse_buffering_range
  (of-object "GstQuery")
  (c-name "gst_query_parse_buffering_range")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "start")
    '("gint64*" "stop")
    '("gint64*" "estimated_total")
  )
)

(define-method add_buffering_range
  (of-object "GstQuery")
  (c-name "gst_query_add_buffering_range")
  (return-type "gboolean")
  (parameters
    '("gint64" "start")
    '("gint64" "stop")
  )
)

(define-method get_n_buffering_ranges
  (of-object "GstQuery")
  (c-name "gst_query_get_n_buffering_ranges")
  (return-type "guint")
)

(define-method parse_nth_buffering_range
  (of-object "GstQuery")
  (c-name "gst_query_parse_nth_buffering_range")
  (return-type "gboolean")
  (parameters
    '("guint" "index")
    '("gint64*" "start")
    '("gint64*" "stop")
  )
)

(define-function gst_query_new_uri
  (c-name "gst_query_new_uri")
  (return-type "GstQuery*")
)

(define-method parse_uri
  (of-object "GstQuery")
  (c-name "gst_query_parse_uri")
  (return-type "none")
  (parameters
    '("gchar**" "uri")
  )
)

(define-method set_uri
  (of-object "GstQuery")
  (c-name "gst_query_set_uri")
  (return-type "none")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method parse_uri_redirection
  (of-object "GstQuery")
  (c-name "gst_query_parse_uri_redirection")
  (return-type "none")
  (parameters
    '("gchar**" "uri")
  )
)

(define-method set_uri_redirection
  (of-object "GstQuery")
  (c-name "gst_query_set_uri_redirection")
  (return-type "none")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method parse_uri_redirection_permanent
  (of-object "GstQuery")
  (c-name "gst_query_parse_uri_redirection_permanent")
  (return-type "none")
  (parameters
    '("gboolean*" "permanent")
  )
)

(define-method set_uri_redirection_permanent
  (of-object "GstQuery")
  (c-name "gst_query_set_uri_redirection_permanent")
  (return-type "none")
  (parameters
    '("gboolean" "permanent")
  )
)

(define-function gst_query_new_allocation
  (c-name "gst_query_new_allocation")
  (return-type "GstQuery*")
  (parameters
    '("GstCaps*" "caps")
    '("gboolean" "need_pool")
  )
)

(define-method parse_allocation
  (of-object "GstQuery")
  (c-name "gst_query_parse_allocation")
  (return-type "none")
  (parameters
    '("GstCaps**" "caps")
    '("gboolean*" "need_pool")
  )
)

(define-method add_allocation_pool
  (of-object "GstQuery")
  (c-name "gst_query_add_allocation_pool")
  (return-type "none")
  (parameters
    '("GstBufferPool*" "pool")
    '("guint" "size")
    '("guint" "min_buffers")
    '("guint" "max_buffers")
  )
)

(define-method get_n_allocation_pools
  (of-object "GstQuery")
  (c-name "gst_query_get_n_allocation_pools")
  (return-type "guint")
)

(define-method parse_nth_allocation_pool
  (of-object "GstQuery")
  (c-name "gst_query_parse_nth_allocation_pool")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("GstBufferPool**" "pool")
    '("guint*" "size")
    '("guint*" "min_buffers")
    '("guint*" "max_buffers")
  )
)

(define-method set_nth_allocation_pool
  (of-object "GstQuery")
  (c-name "gst_query_set_nth_allocation_pool")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("GstBufferPool*" "pool")
    '("guint" "size")
    '("guint" "min_buffers")
    '("guint" "max_buffers")
  )
)

(define-method remove_nth_allocation_pool
  (of-object "GstQuery")
  (c-name "gst_query_remove_nth_allocation_pool")
  (return-type "none")
  (parameters
    '("guint" "index")
  )
)

(define-method add_allocation_param
  (of-object "GstQuery")
  (c-name "gst_query_add_allocation_param")
  (return-type "none")
  (parameters
    '("GstAllocator*" "allocator")
    '("const-GstAllocationParams*" "params")
  )
)

(define-method get_n_allocation_params
  (of-object "GstQuery")
  (c-name "gst_query_get_n_allocation_params")
  (return-type "guint")
)

(define-method parse_nth_allocation_param
  (of-object "GstQuery")
  (c-name "gst_query_parse_nth_allocation_param")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)

(define-method set_nth_allocation_param
  (of-object "GstQuery")
  (c-name "gst_query_set_nth_allocation_param")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("GstAllocator*" "allocator")
    '("const-GstAllocationParams*" "params")
  )
)

(define-method remove_nth_allocation_param
  (of-object "GstQuery")
  (c-name "gst_query_remove_nth_allocation_param")
  (return-type "none")
  (parameters
    '("guint" "index")
  )
)

(define-method add_allocation_meta
  (of-object "GstQuery")
  (c-name "gst_query_add_allocation_meta")
  (return-type "none")
  (parameters
    '("GType" "api")
    '("const-GstStructure*" "params")
  )
)

(define-method get_n_allocation_metas
  (of-object "GstQuery")
  (c-name "gst_query_get_n_allocation_metas")
  (return-type "guint")
)

(define-method parse_nth_allocation_meta
  (of-object "GstQuery")
  (c-name "gst_query_parse_nth_allocation_meta")
  (return-type "GType")
  (parameters
    '("guint" "index")
    '("const-GstStructure**" "params")
  )
)

(define-method remove_nth_allocation_meta
  (of-object "GstQuery")
  (c-name "gst_query_remove_nth_allocation_meta")
  (return-type "none")
  (parameters
    '("guint" "index")
  )
)

(define-method find_allocation_meta
  (of-object "GstQuery")
  (c-name "gst_query_find_allocation_meta")
  (return-type "gboolean")
  (parameters
    '("GType" "api")
    '("guint*" "index")
  )
)

(define-function gst_query_new_scheduling
  (c-name "gst_query_new_scheduling")
  (return-type "GstQuery*")
)

(define-method set_scheduling
  (of-object "GstQuery")
  (c-name "gst_query_set_scheduling")
  (return-type "none")
  (parameters
    '("GstSchedulingFlags" "flags")
    '("gint" "minsize")
    '("gint" "maxsize")
    '("gint" "align")
  )
)

(define-method parse_scheduling
  (of-object "GstQuery")
  (c-name "gst_query_parse_scheduling")
  (return-type "none")
  (parameters
    '("GstSchedulingFlags*" "flags")
    '("gint*" "minsize")
    '("gint*" "maxsize")
    '("gint*" "align")
  )
)

(define-method add_scheduling_mode
  (of-object "GstQuery")
  (c-name "gst_query_add_scheduling_mode")
  (return-type "none")
  (parameters
    '("GstPadMode" "mode")
  )
)

(define-method get_n_scheduling_modes
  (of-object "GstQuery")
  (c-name "gst_query_get_n_scheduling_modes")
  (return-type "guint")
)

(define-method parse_nth_scheduling_mode
  (of-object "GstQuery")
  (c-name "gst_query_parse_nth_scheduling_mode")
  (return-type "GstPadMode")
  (parameters
    '("guint" "index")
  )
)

(define-method has_scheduling_mode
  (of-object "GstQuery")
  (c-name "gst_query_has_scheduling_mode")
  (return-type "gboolean")
  (parameters
    '("GstPadMode" "mode")
  )
)

(define-method has_scheduling_mode_with_flags
  (of-object "GstQuery")
  (c-name "gst_query_has_scheduling_mode_with_flags")
  (return-type "gboolean")
  (parameters
    '("GstPadMode" "mode")
    '("GstSchedulingFlags" "flags")
  )
)

(define-function gst_query_new_accept_caps
  (c-name "gst_query_new_accept_caps")
  (return-type "GstQuery*")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method parse_accept_caps
  (of-object "GstQuery")
  (c-name "gst_query_parse_accept_caps")
  (return-type "none")
  (parameters
    '("GstCaps**" "caps")
  )
)

(define-method set_accept_caps_result
  (of-object "GstQuery")
  (c-name "gst_query_set_accept_caps_result")
  (return-type "none")
  (parameters
    '("gboolean" "result")
  )
)

(define-method parse_accept_caps_result
  (of-object "GstQuery")
  (c-name "gst_query_parse_accept_caps_result")
  (return-type "none")
  (parameters
    '("gboolean*" "result")
  )
)

(define-function gst_query_new_caps
  (c-name "gst_query_new_caps")
  (return-type "GstQuery*")
  (parameters
    '("GstCaps*" "filter")
  )
)

(define-method parse_caps
  (of-object "GstQuery")
  (c-name "gst_query_parse_caps")
  (return-type "none")
  (parameters
    '("GstCaps**" "filter")
  )
)

(define-method set_caps_result
  (of-object "GstQuery")
  (c-name "gst_query_set_caps_result")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method parse_caps_result
  (of-object "GstQuery")
  (c-name "gst_query_parse_caps_result")
  (return-type "none")
  (parameters
    '("GstCaps**" "caps")
  )
)

(define-function gst_query_new_drain
  (c-name "gst_query_new_drain")
  (return-type "GstQuery*")
)

(define-function gst_query_new_context
  (c-name "gst_query_new_context")
  (return-type "GstQuery*")
  (parameters
    '("const-gchar*" "context_type")
  )
)

(define-method parse_context_type
  (of-object "GstQuery")
  (c-name "gst_query_parse_context_type")
  (return-type "gboolean")
  (parameters
    '("const-gchar**" "context_type")
  )
)

(define-method set_context
  (of-object "GstQuery")
  (c-name "gst_query_set_context")
  (return-type "none")
  (parameters
    '("GstContext*" "context")
  )
)

(define-method parse_context
  (of-object "GstQuery")
  (c-name "gst_query_parse_context")
  (return-type "none")
  (parameters
    '("GstContext**" "context")
  )
)



;; From gstregistrybinary.h



;; From gstregistrychunks.h



;; From gstregistry.h

(define-function gst_registry_get_type
  (c-name "gst_registry_get_type")
  (return-type "GType")
)

(define-function gst_registry_get
  (c-name "gst_registry_get")
  (return-type "GstRegistry*")
)

(define-method scan_path
  (of-object "GstRegistry")
  (c-name "gst_registry_scan_path")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method add_path
  (of-object "GstRegistry")
  (c-name "gst_registry_add_path")
  (return-type "none")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method get_path_list
  (of-object "GstRegistry")
  (c-name "gst_registry_get_path_list")
  (return-type "GList*")
)

(define-method add_plugin
  (of-object "GstRegistry")
  (c-name "gst_registry_add_plugin")
  (return-type "gboolean")
  (parameters
    '("GstPlugin*" "plugin")
  )
)

(define-method remove_plugin
  (of-object "GstRegistry")
  (c-name "gst_registry_remove_plugin")
  (return-type "none")
  (parameters
    '("GstPlugin*" "plugin")
  )
)

(define-method add_feature
  (of-object "GstRegistry")
  (c-name "gst_registry_add_feature")
  (return-type "gboolean")
  (parameters
    '("GstPluginFeature*" "feature")
  )
)

(define-method remove_feature
  (of-object "GstRegistry")
  (c-name "gst_registry_remove_feature")
  (return-type "none")
  (parameters
    '("GstPluginFeature*" "feature")
  )
)

(define-method get_plugin_list
  (of-object "GstRegistry")
  (c-name "gst_registry_get_plugin_list")
  (return-type "GList*")
)

(define-method plugin_filter
  (of-object "GstRegistry")
  (c-name "gst_registry_plugin_filter")
  (return-type "GList*")
  (parameters
    '("GstPluginFilter" "filter")
    '("gboolean" "first")
    '("gpointer" "user_data")
  )
)

(define-method feature_filter
  (of-object "GstRegistry")
  (c-name "gst_registry_feature_filter")
  (return-type "GList*")
  (parameters
    '("GstPluginFeatureFilter" "filter")
    '("gboolean" "first")
    '("gpointer" "user_data")
  )
)

(define-method get_feature_list
  (of-object "GstRegistry")
  (c-name "gst_registry_get_feature_list")
  (return-type "GList*")
  (parameters
    '("GType" "type")
  )
)

(define-method get_feature_list_by_plugin
  (of-object "GstRegistry")
  (c-name "gst_registry_get_feature_list_by_plugin")
  (return-type "GList*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_feature_list_cookie
  (of-object "GstRegistry")
  (c-name "gst_registry_get_feature_list_cookie")
  (return-type "guint32")
)

(define-method find_plugin
  (of-object "GstRegistry")
  (c-name "gst_registry_find_plugin")
  (return-type "GstPlugin*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method find_feature
  (of-object "GstRegistry")
  (c-name "gst_registry_find_feature")
  (return-type "GstPluginFeature*")
  (parameters
    '("const-gchar*" "name")
    '("GType" "type")
  )
)

(define-method lookup
  (of-object "GstRegistry")
  (c-name "gst_registry_lookup")
  (return-type "GstPlugin*")
  (parameters
    '("const-char*" "filename")
  )
)

(define-method lookup_feature
  (of-object "GstRegistry")
  (c-name "gst_registry_lookup_feature")
  (return-type "GstPluginFeature*")
  (parameters
    '("const-char*" "name")
  )
)

(define-method check_feature_version
  (of-object "GstRegistry")
  (c-name "gst_registry_check_feature_version")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "feature_name")
    '("guint" "min_major")
    '("guint" "min_minor")
    '("guint" "min_micro")
  )
)



;; From gstsample.h

(define-function gst_sample_get_type
  (c-name "gst_sample_get_type")
  (return-type "GType")
)

(define-function gst_sample_new
  (c-name "gst_sample_new")
  (is-constructor-of "GstSample")
  (return-type "GstSample*")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstCaps*" "caps")
    '("const-GstSegment*" "segment")
    '("GstStructure*" "info")
  )
)

(define-method get_buffer
  (of-object "GstSample")
  (c-name "gst_sample_get_buffer")
  (return-type "GstBuffer*")
)

(define-method get_caps
  (of-object "GstSample")
  (c-name "gst_sample_get_caps")
  (return-type "GstCaps*")
)

(define-method get_segment
  (of-object "GstSample")
  (c-name "gst_sample_get_segment")
  (return-type "GstSegment*")
)

(define-method get_info
  (of-object "GstSample")
  (c-name "gst_sample_get_info")
  (return-type "const-GstStructure*")
)

(define-method get_buffer_list
  (of-object "GstSample")
  (c-name "gst_sample_get_buffer_list")
  (return-type "GstBufferList*")
)

(define-method set_buffer_list
  (of-object "GstSample")
  (c-name "gst_sample_set_buffer_list")
  (return-type "none")
  (parameters
    '("GstBufferList*" "buffer_list")
  )
)

(define-method ref
  (of-object "GstSample")
  (c-name "gst_sample_ref")
  (return-type "GstSample*")
)

(define-method unref
  (of-object "GstSample")
  (c-name "gst_sample_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstSample")
  (c-name "gst_sample_copy")
  (return-type "GstSample*")
)



;; From gstsegment.h

(define-function gst_segment_get_type
  (c-name "gst_segment_get_type")
  (return-type "GType")
)

(define-function gst_segment_new
  (c-name "gst_segment_new")
  (is-constructor-of "GstSegment")
  (return-type "GstSegment*")
)

(define-method copy
  (of-object "GstSegment")
  (c-name "gst_segment_copy")
  (return-type "GstSegment*")
)

(define-method copy_into
  (of-object "GstSegment")
  (c-name "gst_segment_copy_into")
  (return-type "none")
  (parameters
    '("GstSegment*" "dest")
  )
)

(define-method free
  (of-object "GstSegment")
  (c-name "gst_segment_free")
  (return-type "none")
)

(define-method init
  (of-object "GstSegment")
  (c-name "gst_segment_init")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method to_stream_time_full
  (of-object "GstSegment")
  (c-name "gst_segment_to_stream_time_full")
  (return-type "gint")
  (parameters
    '("GstFormat" "format")
    '("guint64" "position")
    '("guint64*" "stream_time")
  )
)

(define-method to_stream_time
  (of-object "GstSegment")
  (c-name "gst_segment_to_stream_time")
  (return-type "guint64")
  (parameters
    '("GstFormat" "format")
    '("guint64" "position")
  )
)

(define-method position_from_stream_time_full
  (of-object "GstSegment")
  (c-name "gst_segment_position_from_stream_time_full")
  (return-type "gint")
  (parameters
    '("GstFormat" "format")
    '("guint64" "stream_time")
    '("guint64*" "position")
  )
)

(define-method position_from_stream_time
  (of-object "GstSegment")
  (c-name "gst_segment_position_from_stream_time")
  (return-type "guint64")
  (parameters
    '("GstFormat" "format")
    '("guint64" "stream_time")
  )
)

(define-method to_running_time
  (of-object "GstSegment")
  (c-name "gst_segment_to_running_time")
  (return-type "guint64")
  (parameters
    '("GstFormat" "format")
    '("guint64" "position")
  )
)

(define-method to_running_time_full
  (of-object "GstSegment")
  (c-name "gst_segment_to_running_time_full")
  (return-type "gint")
  (parameters
    '("GstFormat" "format")
    '("guint64" "position")
    '("guint64*" "running_time")
  )
)

(define-method to_position
  (of-object "GstSegment")
  (c-name "gst_segment_to_position")
  (return-type "guint64")
  (parameters
    '("GstFormat" "format")
    '("guint64" "running_time")
  )
)

(define-method position_from_running_time_full
  (of-object "GstSegment")
  (c-name "gst_segment_position_from_running_time_full")
  (return-type "gint")
  (parameters
    '("GstFormat" "format")
    '("guint64" "running_time")
    '("guint64*" "position")
  )
)

(define-method position_from_running_time
  (of-object "GstSegment")
  (c-name "gst_segment_position_from_running_time")
  (return-type "guint64")
  (parameters
    '("GstFormat" "format")
    '("guint64" "running_time")
  )
)

(define-method set_running_time
  (of-object "GstSegment")
  (c-name "gst_segment_set_running_time")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("guint64" "running_time")
  )
)

(define-method offset_running_time
  (of-object "GstSegment")
  (c-name "gst_segment_offset_running_time")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64" "offset")
  )
)

(define-method clip
  (of-object "GstSegment")
  (c-name "gst_segment_clip")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("guint64" "start")
    '("guint64" "stop")
    '("guint64*" "clip_start")
    '("guint64*" "clip_stop")
  )
)

(define-method do_seek
  (of-object "GstSegment")
  (c-name "gst_segment_do_seek")
  (return-type "gboolean")
  (parameters
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("GstSeekFlags" "flags")
    '("GstSeekType" "start_type")
    '("guint64" "start")
    '("GstSeekType" "stop_type")
    '("guint64" "stop")
    '("gboolean*" "update")
  )
)

(define-method is_equal
  (of-object "GstSegment")
  (c-name "gst_segment_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstSegment*" "s1")
  )
)



;; From gststructure.h

(define-function gst_structure_get_type
  (c-name "gst_structure_get_type")
  (return-type "GType")
)

(define-function gst_structure_new_empty
  (c-name "gst_structure_new_empty")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-function gst_structure_new_id_empty
  (c-name "gst_structure_new_id_empty")
  (return-type "GstStructure*")
  (parameters
    '("GQuark" "quark")
  )
)

(define-function gst_structure_new
  (c-name "gst_structure_new")
  (is-constructor-of "GstStructure")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "firstfield")
  )
  (varargs #t)
)

(define-function gst_structure_new_valist
  (c-name "gst_structure_new_valist")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "firstfield")
    '("va_list" "varargs")
  )
)

(define-function gst_structure_new_id
  (c-name "gst_structure_new_id")
  (return-type "GstStructure*")
  (parameters
    '("GQuark" "name_quark")
    '("GQuark" "field_quark")
  )
  (varargs #t)
)

(define-function gst_structure_new_from_string
  (c-name "gst_structure_new_from_string")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "string")
  )
)

(define-method copy
  (of-object "GstStructure")
  (c-name "gst_structure_copy")
  (return-type "GstStructure*")
)

(define-method set_parent_refcount
  (of-object "GstStructure")
  (c-name "gst_structure_set_parent_refcount")
  (return-type "gboolean")
  (parameters
    '("gint*" "refcount")
  )
)

(define-method free
  (of-object "GstStructure")
  (c-name "gst_structure_free")
  (return-type "none")
)

(define-method get_name
  (of-object "GstStructure")
  (c-name "gst_structure_get_name")
  (return-type "const-gchar*")
)

(define-method get_name_id
  (of-object "GstStructure")
  (c-name "gst_structure_get_name_id")
  (return-type "GQuark")
)

(define-method has_name
  (of-object "GstStructure")
  (c-name "gst_structure_has_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_name
  (of-object "GstStructure")
  (c-name "gst_structure_set_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method id_set_value
  (of-object "GstStructure")
  (c-name "gst_structure_id_set_value")
  (return-type "none")
  (parameters
    '("GQuark" "field")
    '("const-GValue*" "value")
  )
)

(define-method set_value
  (of-object "GstStructure")
  (c-name "gst_structure_set_value")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
    '("const-GValue*" "value")
  )
)

(define-method id_take_value
  (of-object "GstStructure")
  (c-name "gst_structure_id_take_value")
  (return-type "none")
  (parameters
    '("GQuark" "field")
    '("GValue*" "value")
  )
)

(define-method take_value
  (of-object "GstStructure")
  (c-name "gst_structure_take_value")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
    '("GValue*" "value")
  )
)

(define-method set
  (of-object "GstStructure")
  (c-name "gst_structure_set")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
  )
  (varargs #t)
)

(define-method set_valist
  (of-object "GstStructure")
  (c-name "gst_structure_set_valist")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
    '("va_list" "varargs")
  )
)

(define-method id_set
  (of-object "GstStructure")
  (c-name "gst_structure_id_set")
  (return-type "none")
  (parameters
    '("GQuark" "fieldname")
  )
  (varargs #t)
)

(define-method id_set_valist
  (of-object "GstStructure")
  (c-name "gst_structure_id_set_valist")
  (return-type "none")
  (parameters
    '("GQuark" "fieldname")
    '("va_list" "varargs")
  )
)

(define-method get_valist
  (of-object "GstStructure")
  (c-name "gst_structure_get_valist")
  (return-type "gboolean")
  (parameters
    '("const-char*" "first_fieldname")
    '("va_list" "args")
  )
)

(define-method get
  (of-object "GstStructure")
  (c-name "gst_structure_get")
  (return-type "gboolean")
  (parameters
    '("const-char*" "first_fieldname")
  )
  (varargs #t)
)

(define-method id_get_valist
  (of-object "GstStructure")
  (c-name "gst_structure_id_get_valist")
  (return-type "gboolean")
  (parameters
    '("GQuark" "first_field_id")
    '("va_list" "args")
  )
)

(define-method id_get
  (of-object "GstStructure")
  (c-name "gst_structure_id_get")
  (return-type "gboolean")
  (parameters
    '("GQuark" "first_field_id")
  )
  (varargs #t)
)

(define-method id_get_value
  (of-object "GstStructure")
  (c-name "gst_structure_id_get_value")
  (return-type "const-GValue*")
  (parameters
    '("GQuark" "field")
  )
)

(define-method get_value
  (of-object "GstStructure")
  (c-name "gst_structure_get_value")
  (return-type "const-GValue*")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method remove_field
  (of-object "GstStructure")
  (c-name "gst_structure_remove_field")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method remove_fields
  (of-object "GstStructure")
  (c-name "gst_structure_remove_fields")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
  )
  (varargs #t)
)

(define-method remove_fields_valist
  (of-object "GstStructure")
  (c-name "gst_structure_remove_fields_valist")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
    '("va_list" "varargs")
  )
)

(define-method remove_all_fields
  (of-object "GstStructure")
  (c-name "gst_structure_remove_all_fields")
  (return-type "none")
)

(define-method get_field_type
  (of-object "GstStructure")
  (c-name "gst_structure_get_field_type")
  (return-type "GType")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method foreach
  (of-object "GstStructure")
  (c-name "gst_structure_foreach")
  (return-type "gboolean")
  (parameters
    '("GstStructureForeachFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method map_in_place
  (of-object "GstStructure")
  (c-name "gst_structure_map_in_place")
  (return-type "gboolean")
  (parameters
    '("GstStructureMapFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method filter_and_map_in_place
  (of-object "GstStructure")
  (c-name "gst_structure_filter_and_map_in_place")
  (return-type "none")
  (parameters
    '("GstStructureFilterMapFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method n_fields
  (of-object "GstStructure")
  (c-name "gst_structure_n_fields")
  (return-type "gint")
)

(define-method nth_field_name
  (of-object "GstStructure")
  (c-name "gst_structure_nth_field_name")
  (return-type "const-gchar*")
  (parameters
    '("guint" "index")
  )
)

(define-method id_has_field
  (of-object "GstStructure")
  (c-name "gst_structure_id_has_field")
  (return-type "gboolean")
  (parameters
    '("GQuark" "field")
  )
)

(define-method id_has_field_typed
  (of-object "GstStructure")
  (c-name "gst_structure_id_has_field_typed")
  (return-type "gboolean")
  (parameters
    '("GQuark" "field")
    '("GType" "type")
  )
)

(define-method has_field
  (of-object "GstStructure")
  (c-name "gst_structure_has_field")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method has_field_typed
  (of-object "GstStructure")
  (c-name "gst_structure_has_field_typed")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GType" "type")
  )
)

(define-method get_boolean
  (of-object "GstStructure")
  (c-name "gst_structure_get_boolean")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gboolean*" "value")
  )
)

(define-method get_int
  (of-object "GstStructure")
  (c-name "gst_structure_get_int")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gint*" "value")
  )
)

(define-method get_uint
  (of-object "GstStructure")
  (c-name "gst_structure_get_uint")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("guint*" "value")
  )
)

(define-method get_int64
  (of-object "GstStructure")
  (c-name "gst_structure_get_int64")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gint64*" "value")
  )
)

(define-method get_uint64
  (of-object "GstStructure")
  (c-name "gst_structure_get_uint64")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("guint64*" "value")
  )
)

(define-method get_double
  (of-object "GstStructure")
  (c-name "gst_structure_get_double")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gdouble*" "value")
  )
)

(define-method get_date
  (of-object "GstStructure")
  (c-name "gst_structure_get_date")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GDate**" "value")
  )
)

(define-method get_date_time
  (of-object "GstStructure")
  (c-name "gst_structure_get_date_time")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GstDateTime**" "value")
  )
)

(define-method get_clock_time
  (of-object "GstStructure")
  (c-name "gst_structure_get_clock_time")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GstClockTime*" "value")
  )
)

(define-method get_string
  (of-object "GstStructure")
  (c-name "gst_structure_get_string")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method get_enum
  (of-object "GstStructure")
  (c-name "gst_structure_get_enum")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GType" "enumtype")
    '("gint*" "value")
  )
)

(define-method get_fraction
  (of-object "GstStructure")
  (c-name "gst_structure_get_fraction")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gint*" "value_numerator")
    '("gint*" "value_denominator")
  )
)

(define-method get_flagset
  (of-object "GstStructure")
  (c-name "gst_structure_get_flagset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("guint*" "value_flags")
    '("guint*" "value_mask")
  )
)

(define-method to_string
  (of-object "GstStructure")
  (c-name "gst_structure_to_string")
  (return-type "gchar*")
)

(define-function gst_structure_from_string
  (c-name "gst_structure_from_string")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "string")
    '("gchar**" "end")
  )
)

(define-method fixate_field_nearest_int
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_nearest_int")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("int" "target")
  )
)

(define-method fixate_field_nearest_double
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_nearest_double")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("double" "target")
  )
)

(define-method fixate_field_boolean
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_boolean")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("gboolean" "target")
  )
)

(define-method fixate_field_string
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_string")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("const-gchar*" "target")
  )
)

(define-method fixate_field_nearest_fraction
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_nearest_fraction")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("const-gint" "target_numerator")
    '("const-gint" "target_denominator")
  )
)

(define-method fixate_field
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
  )
)

(define-method fixate
  (of-object "GstStructure")
  (c-name "gst_structure_fixate")
  (return-type "none")
)

(define-method is_equal
  (of-object "GstStructure")
  (c-name "gst_structure_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstStructure*" "structure2")
  )
)

(define-method is_subset
  (of-object "GstStructure")
  (c-name "gst_structure_is_subset")
  (return-type "gboolean")
  (parameters
    '("const-GstStructure*" "superset")
  )
)

(define-method can_intersect
  (of-object "GstStructure")
  (c-name "gst_structure_can_intersect")
  (return-type "gboolean")
  (parameters
    '("const-GstStructure*" "struct2")
  )
)

(define-method intersect
  (of-object "GstStructure")
  (c-name "gst_structure_intersect")
  (return-type "GstStructure*")
  (parameters
    '("const-GstStructure*" "struct2")
  )
)



;; From gstsystemclock.h

(define-function gst_system_clock_get_type
  (c-name "gst_system_clock_get_type")
  (return-type "GType")
)

(define-function gst_system_clock_obtain
  (c-name "gst_system_clock_obtain")
  (return-type "GstClock*")
)

(define-function gst_system_clock_set_default
  (c-name "gst_system_clock_set_default")
  (return-type "none")
  (parameters
    '("GstClock*" "new_clock")
  )
)



;; From gsttaglist.h

(define-function gst_tag_list_get_type
  (c-name "gst_tag_list_get_type")
  (return-type "GType")
)

(define-function gst_tag_register
  (c-name "gst_tag_register")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("GstTagFlag" "flag")
    '("GType" "type")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("GstTagMergeFunc" "func")
  )
)

(define-function gst_tag_register_static
  (c-name "gst_tag_register_static")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("GstTagFlag" "flag")
    '("GType" "type")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("GstTagMergeFunc" "func")
  )
)

(define-function gst_tag_merge_use_first
  (c-name "gst_tag_merge_use_first")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "src")
  )
)

(define-function gst_tag_merge_strings_with_comma
  (c-name "gst_tag_merge_strings_with_comma")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "src")
  )
)

(define-function gst_tag_exists
  (c-name "gst_tag_exists")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_get_type
  (c-name "gst_tag_get_type")
  (return-type "GType")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_get_nick
  (c-name "gst_tag_get_nick")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_get_description
  (c-name "gst_tag_get_description")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_get_flag
  (c-name "gst_tag_get_flag")
  (return-type "GstTagFlag")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_is_fixed
  (c-name "gst_tag_is_fixed")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_list_new_empty
  (c-name "gst_tag_list_new_empty")
  (return-type "GstTagList*")
)

(define-function gst_tag_list_new
  (c-name "gst_tag_list_new")
  (is-constructor-of "GstTagList")
  (return-type "GstTagList*")
  (parameters
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-function gst_tag_list_new_valist
  (c-name "gst_tag_list_new_valist")
  (return-type "GstTagList*")
  (parameters
    '("va_list" "var_args")
  )
)

(define-method set_scope
  (of-object "GstTagList")
  (c-name "gst_tag_list_set_scope")
  (return-type "none")
  (parameters
    '("GstTagScope" "scope")
  )
)

(define-method get_scope
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_scope")
  (return-type "GstTagScope")
)

(define-method to_string
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_string")
  (return-type "gchar*")
)

(define-function gst_tag_list_new_from_string
  (c-name "gst_tag_list_new_from_string")
  (return-type "GstTagList*")
  (parameters
    '("const-gchar*" "str")
  )
)

(define-method n_tags
  (of-object "GstTagList")
  (c-name "gst_tag_list_n_tags")
  (return-type "gint")
)

(define-method nth_tag_name
  (of-object "GstTagList")
  (c-name "gst_tag_list_nth_tag_name")
  (return-type "const-gchar*")
  (parameters
    '("guint" "index")
  )
)

(define-method is_empty
  (of-object "GstTagList")
  (c-name "gst_tag_list_is_empty")
  (return-type "gboolean")
)

(define-method is_equal
  (of-object "GstTagList")
  (c-name "gst_tag_list_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstTagList*" "list2")
  )
)

(define-method insert
  (of-object "GstTagList")
  (c-name "gst_tag_list_insert")
  (return-type "none")
  (parameters
    '("const-GstTagList*" "from")
    '("GstTagMergeMode" "mode")
  )
)

(define-method merge
  (of-object "GstTagList")
  (c-name "gst_tag_list_merge")
  (return-type "GstTagList*")
  (parameters
    '("const-GstTagList*" "list2")
    '("GstTagMergeMode" "mode")
  )
)

(define-method get_tag_size
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_tag_size")
  (return-type "guint")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-method add
  (of-object "GstTagList")
  (c-name "gst_tag_list_add")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-method add_values
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_values")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-method add_valist
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_valist")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("va_list" "var_args")
  )
)

(define-method add_valist_values
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_valist_values")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("va_list" "var_args")
  )
)

(define-method add_value
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_value")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("const-GValue*" "value")
  )
)

(define-method remove_tag
  (of-object "GstTagList")
  (c-name "gst_tag_list_remove_tag")
  (return-type "none")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-method foreach
  (of-object "GstTagList")
  (c-name "gst_tag_list_foreach")
  (return-type "none")
  (parameters
    '("GstTagForeachFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method get_value_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_value_index")
  (return-type "const-GValue*")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
  )
)

(define-function gst_tag_list_copy_value
  (c-name "gst_tag_list_copy_value")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GstTagList*" "list")
    '("const-gchar*" "tag")
  )
)

(define-method get_boolean
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_boolean")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gboolean*" "value")
  )
)

(define-method get_boolean_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_boolean_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gboolean*" "value")
  )
)

(define-method get_int
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_int")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gint*" "value")
  )
)

(define-method get_int_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_int_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gint*" "value")
  )
)

(define-method get_uint
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uint")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint*" "value")
  )
)

(define-method get_uint_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uint_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("guint*" "value")
  )
)

(define-method get_int64
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_int64")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gint64*" "value")
  )
)

(define-method get_int64_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_int64_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gint64*" "value")
  )
)

(define-method get_uint64
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uint64")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint64*" "value")
  )
)

(define-method get_uint64_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uint64_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("guint64*" "value")
  )
)

(define-method get_float
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_float")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gfloat*" "value")
  )
)

(define-method get_float_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_float_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gfloat*" "value")
  )
)

(define-method get_double
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_double")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gdouble*" "value")
  )
)

(define-method get_double_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_double_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gdouble*" "value")
  )
)

(define-method get_string
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_string")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gchar**" "value")
  )
)

(define-method get_string_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_string_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gchar**" "value")
  )
)

(define-method peek_string_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_peek_string_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("const-gchar**" "value")
  )
)

(define-method get_pointer
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_pointer")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gpointer*" "value")
  )
)

(define-method get_pointer_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_pointer_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gpointer*" "value")
  )
)

(define-method get_date
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_date")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("GDate**" "value")
  )
)

(define-method get_date_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_date_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("GDate**" "value")
  )
)

(define-method get_date_time
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_date_time")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("GstDateTime**" "value")
  )
)

(define-method get_date_time_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_date_time_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("GstDateTime**" "value")
  )
)

(define-method get_sample
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_sample")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("GstSample**" "sample")
  )
)

(define-method get_sample_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_sample_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("GstSample**" "sample")
  )
)

(define-method ref
  (of-object "GstTagList")
  (c-name "gst_tag_list_ref")
  (return-type "GstTagList*")
)

(define-method unref
  (of-object "GstTagList")
  (c-name "gst_tag_list_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstTagList")
  (c-name "gst_tag_list_copy")
  (return-type "GstTagList*")
)



;; From gsttagsetter.h

(define-function gst_tag_setter_get_type
  (c-name "gst_tag_setter_get_type")
  (return-type "GType")
)

(define-method reset_tags
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_reset_tags")
  (return-type "none")
)

(define-method merge_tags
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_merge_tags")
  (return-type "none")
  (parameters
    '("const-GstTagList*" "list")
    '("GstTagMergeMode" "mode")
  )
)

(define-method add_tags
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tags")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-method add_tag_values
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tag_values")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-method add_tag_valist
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tag_valist")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("va_list" "var_args")
  )
)

(define-method add_tag_valist_values
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tag_valist_values")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("va_list" "var_args")
  )
)

(define-method add_tag_value
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tag_value")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("const-GValue*" "value")
  )
)

(define-method get_tag_list
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_get_tag_list")
  (return-type "const-GstTagList*")
)

(define-method set_tag_merge_mode
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_set_tag_merge_mode")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
  )
)

(define-method get_tag_merge_mode
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_get_tag_merge_mode")
  (return-type "GstTagMergeMode")
)



;; From gsttask.h

(define-function gst_task_cleanup_all
  (c-name "gst_task_cleanup_all")
  (return-type "none")
)

(define-function gst_task_get_type
  (c-name "gst_task_get_type")
  (return-type "GType")
)

(define-function gst_task_new
  (c-name "gst_task_new")
  (is-constructor-of "GstTask")
  (return-type "GstTask*")
  (parameters
    '("GstTaskFunction" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_lock
  (of-object "GstTask")
  (c-name "gst_task_set_lock")
  (return-type "none")
  (parameters
    '("GRecMutex*" "mutex")
  )
)

(define-method get_pool
  (of-object "GstTask")
  (c-name "gst_task_get_pool")
  (return-type "GstTaskPool*")
)

(define-method set_pool
  (of-object "GstTask")
  (c-name "gst_task_set_pool")
  (return-type "none")
  (parameters
    '("GstTaskPool*" "pool")
  )
)

(define-method set_enter_callback
  (of-object "GstTask")
  (c-name "gst_task_set_enter_callback")
  (return-type "none")
  (parameters
    '("GstTaskThreadFunc" "enter_func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method set_leave_callback
  (of-object "GstTask")
  (c-name "gst_task_set_leave_callback")
  (return-type "none")
  (parameters
    '("GstTaskThreadFunc" "leave_func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method get_state
  (of-object "GstTask")
  (c-name "gst_task_get_state")
  (return-type "GstTaskState")
)

(define-method set_state
  (of-object "GstTask")
  (c-name "gst_task_set_state")
  (return-type "gboolean")
  (parameters
    '("GstTaskState" "state")
  )
)

(define-method start
  (of-object "GstTask")
  (c-name "gst_task_start")
  (return-type "gboolean")
)

(define-method stop
  (of-object "GstTask")
  (c-name "gst_task_stop")
  (return-type "gboolean")
)

(define-method pause
  (of-object "GstTask")
  (c-name "gst_task_pause")
  (return-type "gboolean")
)

(define-method join
  (of-object "GstTask")
  (c-name "gst_task_join")
  (return-type "gboolean")
)



;; From gsttaskpool.h

(define-function gst_task_pool_get_type
  (c-name "gst_task_pool_get_type")
  (return-type "GType")
)

(define-function gst_task_pool_new
  (c-name "gst_task_pool_new")
  (is-constructor-of "GstTaskPool")
  (return-type "GstTaskPool*")
)

(define-method prepare
  (of-object "GstTaskPool")
  (c-name "gst_task_pool_prepare")
  (return-type "none")
  (parameters
    '("GError**" "error")
  )
)

(define-method push
  (of-object "GstTaskPool")
  (c-name "gst_task_pool_push")
  (return-type "gpointer")
  (parameters
    '("GstTaskPoolFunction" "func")
    '("gpointer" "user_data")
    '("GError**" "error")
  )
)

(define-method join
  (of-object "GstTaskPool")
  (c-name "gst_task_pool_join")
  (return-type "none")
  (parameters
    '("gpointer" "id")
  )
)

(define-method cleanup
  (of-object "GstTaskPool")
  (c-name "gst_task_pool_cleanup")
  (return-type "none")
)



;; From gsttoc.h

(define-function gst_toc_get_type
  (c-name "gst_toc_get_type")
  (return-type "GType")
)

(define-function gst_toc_entry_get_type
  (c-name "gst_toc_entry_get_type")
  (return-type "GType")
)

(define-function gst_toc_new
  (c-name "gst_toc_new")
  (is-constructor-of "GstToc")
  (return-type "GstToc*")
  (parameters
    '("GstTocScope" "scope")
  )
)

(define-method get_scope
  (of-object "GstToc")
  (c-name "gst_toc_get_scope")
  (return-type "GstTocScope")
)

(define-method set_tags
  (of-object "GstToc")
  (c-name "gst_toc_set_tags")
  (return-type "none")
  (parameters
    '("GstTagList*" "tags")
  )
)

(define-method merge_tags
  (of-object "GstToc")
  (c-name "gst_toc_merge_tags")
  (return-type "none")
  (parameters
    '("GstTagList*" "tags")
    '("GstTagMergeMode" "mode")
  )
)

(define-method get_tags
  (of-object "GstToc")
  (c-name "gst_toc_get_tags")
  (return-type "GstTagList*")
)

(define-method append_entry
  (of-object "GstToc")
  (c-name "gst_toc_append_entry")
  (return-type "none")
  (parameters
    '("GstTocEntry*" "entry")
  )
)

(define-method get_entries
  (of-object "GstToc")
  (c-name "gst_toc_get_entries")
  (return-type "GList*")
)

(define-method dump
  (of-object "GstToc")
  (c-name "gst_toc_dump")
  (return-type "none")
)

(define-function gst_toc_entry_new
  (c-name "gst_toc_entry_new")
  (is-constructor-of "GstTocEntry")
  (return-type "GstTocEntry*")
  (parameters
    '("GstTocEntryType" "type")
    '("const-gchar*" "uid")
  )
)

(define-method find_entry
  (of-object "GstToc")
  (c-name "gst_toc_find_entry")
  (return-type "GstTocEntry*")
  (parameters
    '("const-gchar*" "uid")
  )
)

(define-method get_entry_type
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_get_entry_type")
  (return-type "GstTocEntryType")
)

(define-method get_uid
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_get_uid")
  (return-type "const-gchar*")
)

(define-method append_sub_entry
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_append_sub_entry")
  (return-type "none")
  (parameters
    '("GstTocEntry*" "subentry")
  )
)

(define-method get_sub_entries
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_get_sub_entries")
  (return-type "GList*")
)

(define-method set_tags
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_set_tags")
  (return-type "none")
  (parameters
    '("GstTagList*" "tags")
  )
)

(define-method merge_tags
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_merge_tags")
  (return-type "none")
  (parameters
    '("GstTagList*" "tags")
    '("GstTagMergeMode" "mode")
  )
)

(define-method get_tags
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_get_tags")
  (return-type "GstTagList*")
)

(define-method is_alternative
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_is_alternative")
  (return-type "gboolean")
)

(define-method is_sequence
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_is_sequence")
  (return-type "gboolean")
)

(define-method set_start_stop_times
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_set_start_stop_times")
  (return-type "none")
  (parameters
    '("gint64" "start")
    '("gint64" "stop")
  )
)

(define-method get_start_stop_times
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_get_start_stop_times")
  (return-type "gboolean")
  (parameters
    '("gint64*" "start")
    '("gint64*" "stop")
  )
)

(define-method set_loop
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_set_loop")
  (return-type "none")
  (parameters
    '("GstTocLoopType" "loop_type")
    '("gint" "repeat_count")
  )
)

(define-method get_loop
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_get_loop")
  (return-type "gboolean")
  (parameters
    '("GstTocLoopType*" "loop_type")
    '("gint*" "repeat_count")
  )
)

(define-method get_toc
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_get_toc")
  (return-type "GstToc*")
)

(define-method get_parent
  (of-object "GstTocEntry")
  (c-name "gst_toc_entry_get_parent")
  (return-type "GstTocEntry*")
)

(define-method get_nick
  (of-object "GstTocEntryType")
  (c-name "gst_toc_entry_type_get_nick")
  (return-type "const-gchar*")
)



;; From gsttocsetter.h

(define-function gst_toc_setter_get_type
  (c-name "gst_toc_setter_get_type")
  (return-type "GType")
)

(define-method reset
  (of-object "GstTocSetter")
  (c-name "gst_toc_setter_reset")
  (return-type "none")
)

(define-method get_toc
  (of-object "GstTocSetter")
  (c-name "gst_toc_setter_get_toc")
  (return-type "GstToc*")
)

(define-method set_toc
  (of-object "GstTocSetter")
  (c-name "gst_toc_setter_set_toc")
  (return-type "none")
  (parameters
    '("GstToc*" "toc")
  )
)



;; From gsttrace.h



;; From gsttracerfactory.h

(define-function gst_tracer_factory_get_type
  (c-name "gst_tracer_factory_get_type")
  (return-type "GType")
)

(define-function gst_tracer_factory_get_list
  (c-name "gst_tracer_factory_get_list")
  (return-type "GList*")
)



;; From gsttracer.h

(define-function gst_tracer_get_type
  (c-name "gst_tracer_get_type")
  (return-type "GType")
)

(define-function gst_tracing_register_hook
  (c-name "gst_tracing_register_hook")
  (return-type "none")
  (parameters
    '("GstTracer*" "tracer")
    '("const-gchar*" "detail")
    '("GCallback" "func")
  )
)

(define-function gst_tracer_register
  (c-name "gst_tracer_register")
  (return-type "gboolean")
  (parameters
    '("GstPlugin*" "plugin")
    '("const-gchar*" "name")
    '("GType" "type")
  )
)



;; From gsttracerrecord.h

(define-function gst_tracer_record_get_type
  (c-name "gst_tracer_record_get_type")
  (return-type "GType")
)

(define-method log
  (of-object "GstTracerRecord")
  (c-name "gst_tracer_record_log")
  (return-type "none")
  (parameters
  )
  (varargs #t)
)



;; From gsttracerutils.h



;; From gsttypefindfactory.h

(define-function gst_type_find_factory_get_type
  (c-name "gst_type_find_factory_get_type")
  (return-type "GType")
)

(define-function gst_type_find_factory_get_list
  (c-name "gst_type_find_factory_get_list")
  (return-type "GList*")
)

(define-method get_extensions
  (of-object "GstTypeFindFactory")
  (c-name "gst_type_find_factory_get_extensions")
  (return-type "const-gchar*-const*")
)

(define-method get_caps
  (of-object "GstTypeFindFactory")
  (c-name "gst_type_find_factory_get_caps")
  (return-type "GstCaps*")
)

(define-method has_function
  (of-object "GstTypeFindFactory")
  (c-name "gst_type_find_factory_has_function")
  (return-type "gboolean")
)

(define-method call_function
  (of-object "GstTypeFindFactory")
  (c-name "gst_type_find_factory_call_function")
  (return-type "none")
  (parameters
    '("GstTypeFind*" "find")
  )
)



;; From gsttypefind.h

(define-function gst_type_find_get_type
  (c-name "gst_type_find_get_type")
  (return-type "GType")
)

(define-method peek
  (of-object "GstTypeFind")
  (c-name "gst_type_find_peek")
  (return-type "const-guint8*")
  (parameters
    '("gint64" "offset")
    '("guint" "size")
  )
)

(define-method suggest
  (of-object "GstTypeFind")
  (c-name "gst_type_find_suggest")
  (return-type "none")
  (parameters
    '("guint" "probability")
    '("GstCaps*" "caps")
  )
)

(define-method suggest_simple
  (of-object "GstTypeFind")
  (c-name "gst_type_find_suggest_simple")
  (return-type "none")
  (parameters
    '("guint" "probability")
    '("const-char*" "media_type")
    '("const-char*" "fieldname")
  )
  (varargs #t)
)

(define-method get_length
  (of-object "GstTypeFind")
  (c-name "gst_type_find_get_length")
  (return-type "guint64")
)

(define-function gst_type_find_register
  (c-name "gst_type_find_register")
  (return-type "gboolean")
  (parameters
    '("GstPlugin*" "plugin")
    '("const-gchar*" "name")
    '("guint" "rank")
    '("GstTypeFindFunction" "func")
    '("const-gchar*" "extensions")
    '("GstCaps*" "possible_caps")
    '("gpointer" "data")
    '("GDestroyNotify" "data_notify")
  )
)



;; From gsturi.h

(define-function gst_uri_error_quark
  (c-name "gst_uri_error_quark")
  (return-type "GQuark")
)

(define-function gst_uri_protocol_is_valid
  (c-name "gst_uri_protocol_is_valid")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_uri_protocol_is_supported
  (c-name "gst_uri_protocol_is_supported")
  (return-type "gboolean")
  (parameters
    '("const-GstURIType" "type")
    '("const-gchar*" "protocol")
  )
)

(define-function gst_uri_is_valid
  (c-name "gst_uri_is_valid")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-function gst_uri_get_protocol
  (c-name "gst_uri_get_protocol")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-function gst_uri_has_protocol
  (c-name "gst_uri_has_protocol")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "uri")
    '("const-gchar*" "protocol")
  )
)

(define-function gst_uri_get_location
  (c-name "gst_uri_get_location")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-function gst_uri_construct
  (c-name "gst_uri_construct")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
    '("const-gchar*" "location")
  )
)

(define-function gst_filename_to_uri
  (c-name "gst_filename_to_uri")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "filename")
    '("GError**" "error")
  )
)

(define-function gst_element_make_from_uri
  (c-name "gst_element_make_from_uri")
  (return-type "GstElement*")
  (parameters
    '("const-GstURIType" "type")
    '("const-gchar*" "uri")
    '("const-gchar*" "elementname")
    '("GError**" "error")
  )
)

(define-function gst_uri_handler_get_type
  (c-name "gst_uri_handler_get_type")
  (return-type "GType")
)

(define-method get_uri_type
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_get_uri_type")
  (return-type "GstURIType")
)

(define-method get_protocols
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_get_protocols")
  (return-type "const-gchar*-const*")
)

(define-method get_uri
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_get_uri")
  (return-type "gchar*")
)

(define-method set_uri
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_set_uri")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "uri")
    '("GError**" "error")
  )
)

(define-function gst_uri_get_type
  (c-name "gst_uri_get_type")
  (return-type "GType")
)

(define-function gst_uri_new
  (c-name "gst_uri_new")
  (is-constructor-of "GstUri")
  (return-type "GstUri*")
  (parameters
    '("const-gchar*" "scheme")
    '("const-gchar*" "userinfo")
    '("const-gchar*" "host")
    '("guint" "port")
    '("const-gchar*" "path")
    '("const-gchar*" "query")
    '("const-gchar*" "fragment")
  )
)

(define-method new_with_base
  (of-object "GstUri")
  (c-name "gst_uri_new_with_base")
  (return-type "GstUri*")
  (parameters
    '("const-gchar*" "scheme")
    '("const-gchar*" "userinfo")
    '("const-gchar*" "host")
    '("guint" "port")
    '("const-gchar*" "path")
    '("const-gchar*" "query")
    '("const-gchar*" "fragment")
  )
)

(define-function gst_uri_from_string
  (c-name "gst_uri_from_string")
  (return-type "GstUri*")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method from_string_with_base
  (of-object "GstUri")
  (c-name "gst_uri_from_string_with_base")
  (return-type "GstUri*")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method equal
  (of-object "GstUri")
  (c-name "gst_uri_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstUri*" "second")
  )
)

(define-method join
  (of-object "GstUri")
  (c-name "gst_uri_join")
  (return-type "GstUri*")
  (parameters
    '("GstUri*" "ref_uri")
  )
)

(define-function gst_uri_join_strings
  (c-name "gst_uri_join_strings")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "base_uri")
    '("const-gchar*" "ref_uri")
  )
)

(define-method is_writable
  (of-object "GstUri")
  (c-name "gst_uri_is_writable")
  (return-type "gboolean")
)

(define-method make_writable
  (of-object "GstUri")
  (c-name "gst_uri_make_writable")
  (return-type "GstUri*")
)

(define-method to_string
  (of-object "GstUri")
  (c-name "gst_uri_to_string")
  (return-type "gchar*")
)

(define-method is_normalized
  (of-object "GstUri")
  (c-name "gst_uri_is_normalized")
  (return-type "gboolean")
)

(define-method normalize
  (of-object "GstUri")
  (c-name "gst_uri_normalize")
  (return-type "gboolean")
)

(define-method get_scheme
  (of-object "GstUri")
  (c-name "gst_uri_get_scheme")
  (return-type "const-gchar*")
)

(define-method set_scheme
  (of-object "GstUri")
  (c-name "gst_uri_set_scheme")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "scheme")
  )
)

(define-method get_userinfo
  (of-object "GstUri")
  (c-name "gst_uri_get_userinfo")
  (return-type "const-gchar*")
)

(define-method set_userinfo
  (of-object "GstUri")
  (c-name "gst_uri_set_userinfo")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "userinfo")
  )
)

(define-method get_host
  (of-object "GstUri")
  (c-name "gst_uri_get_host")
  (return-type "const-gchar*")
)

(define-method set_host
  (of-object "GstUri")
  (c-name "gst_uri_set_host")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "host")
  )
)

(define-method get_port
  (of-object "GstUri")
  (c-name "gst_uri_get_port")
  (return-type "guint")
)

(define-method set_port
  (of-object "GstUri")
  (c-name "gst_uri_set_port")
  (return-type "gboolean")
  (parameters
    '("guint" "port")
  )
)

(define-method get_path
  (of-object "GstUri")
  (c-name "gst_uri_get_path")
  (return-type "gchar*")
)

(define-method set_path
  (of-object "GstUri")
  (c-name "gst_uri_set_path")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method get_path_string
  (of-object "GstUri")
  (c-name "gst_uri_get_path_string")
  (return-type "gchar*")
)

(define-method set_path_string
  (of-object "GstUri")
  (c-name "gst_uri_set_path_string")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method get_path_segments
  (of-object "GstUri")
  (c-name "gst_uri_get_path_segments")
  (return-type "GList*")
)

(define-method set_path_segments
  (of-object "GstUri")
  (c-name "gst_uri_set_path_segments")
  (return-type "gboolean")
  (parameters
    '("GList*" "path_segments")
  )
)

(define-method append_path
  (of-object "GstUri")
  (c-name "gst_uri_append_path")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "relative_path")
  )
)

(define-method append_path_segment
  (of-object "GstUri")
  (c-name "gst_uri_append_path_segment")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "path_segment")
  )
)

(define-method get_query_string
  (of-object "GstUri")
  (c-name "gst_uri_get_query_string")
  (return-type "gchar*")
)

(define-method set_query_string
  (of-object "GstUri")
  (c-name "gst_uri_set_query_string")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "query")
  )
)

(define-method get_query_table
  (of-object "GstUri")
  (c-name "gst_uri_get_query_table")
  (return-type "GHashTable*")
)

(define-method set_query_table
  (of-object "GstUri")
  (c-name "gst_uri_set_query_table")
  (return-type "gboolean")
  (parameters
    '("GHashTable*" "query_table")
  )
)

(define-method set_query_value
  (of-object "GstUri")
  (c-name "gst_uri_set_query_value")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "query_key")
    '("const-gchar*" "query_value")
  )
)

(define-method remove_query_key
  (of-object "GstUri")
  (c-name "gst_uri_remove_query_key")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "query_key")
  )
)

(define-method query_has_key
  (of-object "GstUri")
  (c-name "gst_uri_query_has_key")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "query_key")
  )
)

(define-method get_query_value
  (of-object "GstUri")
  (c-name "gst_uri_get_query_value")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "query_key")
  )
)

(define-method get_query_keys
  (of-object "GstUri")
  (c-name "gst_uri_get_query_keys")
  (return-type "GList*")
)

(define-method get_fragment
  (of-object "GstUri")
  (c-name "gst_uri_get_fragment")
  (return-type "const-gchar*")
)

(define-method set_fragment
  (of-object "GstUri")
  (c-name "gst_uri_set_fragment")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fragment")
  )
)

(define-method copy
  (of-object "GstUri")
  (c-name "gst_uri_copy")
  (return-type "GstUri*")
)

(define-method ref
  (of-object "GstUri")
  (c-name "gst_uri_ref")
  (return-type "GstUri*")
)

(define-method unref
  (of-object "GstUri")
  (c-name "gst_uri_unref")
  (return-type "none")
)



;; From gstutils.h

(define-function gst_util_set_value_from_string
  (c-name "gst_util_set_value_from_string")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-gchar*" "value_str")
  )
)

(define-function gst_util_set_object_arg
  (c-name "gst_util_set_object_arg")
  (return-type "none")
  (parameters
    '("GObject*" "object")
    '("const-gchar*" "name")
    '("const-gchar*" "value")
  )
)

(define-function gst_util_dump_mem
  (c-name "gst_util_dump_mem")
  (return-type "none")
  (parameters
    '("const-guchar*" "mem")
    '("guint" "size")
  )
)

(define-function gst_util_gdouble_to_guint64
  (c-name "gst_util_gdouble_to_guint64")
  (return-type "guint64")
  (parameters
    '("gdouble" "value")
  )
)

(define-function gst_util_guint64_to_gdouble
  (c-name "gst_util_guint64_to_gdouble")
  (return-type "gdouble")
  (parameters
    '("guint64" "value")
  )
)

(define-function gst_util_uint64_scale
  (c-name "gst_util_uint64_scale")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("guint64" "num")
    '("guint64" "denom")
  )
)

(define-function gst_util_uint64_scale_round
  (c-name "gst_util_uint64_scale_round")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("guint64" "num")
    '("guint64" "denom")
  )
)

(define-function gst_util_uint64_scale_ceil
  (c-name "gst_util_uint64_scale_ceil")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("guint64" "num")
    '("guint64" "denom")
  )
)

(define-function gst_util_uint64_scale_int
  (c-name "gst_util_uint64_scale_int")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("gint" "num")
    '("gint" "denom")
  )
)

(define-function gst_util_uint64_scale_int_round
  (c-name "gst_util_uint64_scale_int_round")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("gint" "num")
    '("gint" "denom")
  )
)

(define-function gst_util_uint64_scale_int_ceil
  (c-name "gst_util_uint64_scale_int_ceil")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("gint" "num")
    '("gint" "denom")
  )
)

(define-function gst_util_seqnum_next
  (c-name "gst_util_seqnum_next")
  (return-type "guint32")
)

(define-function gst_util_seqnum_compare
  (c-name "gst_util_seqnum_compare")
  (return-type "gint32")
  (parameters
    '("guint32" "s1")
    '("guint32" "s2")
  )
)

(define-function gst_util_group_id_next
  (c-name "gst_util_group_id_next")
  (return-type "guint")
)

(define-function GFLOAT_SWAP_LE_BE
  (c-name "GFLOAT_SWAP_LE_BE")
  (return-type "gfloat")
  (parameters
    '("gfloat" "in")
  )
)

(define-function GDOUBLE_SWAP_LE_BE
  (c-name "GDOUBLE_SWAP_LE_BE")
  (return-type "gdouble")
  (parameters
    '("gdouble" "in")
  )
)

(define-function GST_READ_FLOAT_LE
  (c-name "GST_READ_FLOAT_LE")
  (return-type "gfloat")
  (parameters
    '("const-guint8*" "data")
  )
)

(define-function GST_READ_FLOAT_BE
  (c-name "GST_READ_FLOAT_BE")
  (return-type "gfloat")
  (parameters
    '("const-guint8*" "data")
  )
)

(define-function GST_READ_DOUBLE_LE
  (c-name "GST_READ_DOUBLE_LE")
  (return-type "gdouble")
  (parameters
    '("const-guint8*" "data")
  )
)

(define-function GST_READ_DOUBLE_BE
  (c-name "GST_READ_DOUBLE_BE")
  (return-type "gdouble")
  (parameters
    '("const-guint8*" "data")
  )
)

(define-function GST_WRITE_FLOAT_LE
  (c-name "GST_WRITE_FLOAT_LE")
  (return-type "none")
  (parameters
    '("guint8*" "data")
    '("gfloat" "num")
  )
)

(define-function GST_WRITE_FLOAT_BE
  (c-name "GST_WRITE_FLOAT_BE")
  (return-type "none")
  (parameters
    '("guint8*" "data")
    '("gfloat" "num")
  )
)

(define-function GST_WRITE_DOUBLE_LE
  (c-name "GST_WRITE_DOUBLE_LE")
  (return-type "none")
  (parameters
    '("guint8*" "data")
    '("gdouble" "num")
  )
)

(define-function GST_WRITE_DOUBLE_BE
  (c-name "GST_WRITE_DOUBLE_BE")
  (return-type "none")
  (parameters
    '("guint8*" "data")
    '("gdouble" "num")
  )
)

(define-method default_error
  (of-object "GstObject")
  (c-name "gst_object_default_error")
  (return-type "none")
  (parameters
    '("const-GError*" "error")
    '("const-gchar*" "debug")
  )
)

(define-method create_all_pads
  (of-object "GstElement")
  (c-name "gst_element_create_all_pads")
  (return-type "none")
)

(define-method get_compatible_pad
  (of-object "GstElement")
  (c-name "gst_element_get_compatible_pad")
  (return-type "GstPad*")
  (parameters
    '("GstPad*" "pad")
    '("GstCaps*" "caps")
  )
)

(define-method get_compatible_pad_template
  (of-object "GstElement")
  (c-name "gst_element_get_compatible_pad_template")
  (return-type "GstPadTemplate*")
  (parameters
    '("GstPadTemplate*" "compattempl")
  )
)

(define-function gst_element_state_get_name
  (c-name "gst_element_state_get_name")
  (return-type "const-gchar*")
  (parameters
    '("GstState" "state")
  )
)

(define-function gst_element_state_change_return_get_name
  (c-name "gst_element_state_change_return_get_name")
  (return-type "const-gchar*")
  (parameters
    '("GstStateChangeReturn" "state_ret")
  )
)

(define-method link
  (of-object "GstElement")
  (c-name "gst_element_link")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "dest")
  )
)

(define-method link_many
  (of-object "GstElement")
  (c-name "gst_element_link_many")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element_2")
  )
  (varargs #t)
)

(define-method link_filtered
  (of-object "GstElement")
  (c-name "gst_element_link_filtered")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "dest")
    '("GstCaps*" "filter")
  )
)

(define-method unlink
  (of-object "GstElement")
  (c-name "gst_element_unlink")
  (return-type "none")
  (parameters
    '("GstElement*" "dest")
  )
)

(define-method unlink_many
  (of-object "GstElement")
  (c-name "gst_element_unlink_many")
  (return-type "none")
  (parameters
    '("GstElement*" "element_2")
  )
  (varargs #t)
)

(define-method link_pads
  (of-object "GstElement")
  (c-name "gst_element_link_pads")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "srcpadname")
    '("GstElement*" "dest")
    '("const-gchar*" "destpadname")
  )
)

(define-method link_pads_full
  (of-object "GstElement")
  (c-name "gst_element_link_pads_full")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "srcpadname")
    '("GstElement*" "dest")
    '("const-gchar*" "destpadname")
    '("GstPadLinkCheck" "flags")
  )
)

(define-method unlink_pads
  (of-object "GstElement")
  (c-name "gst_element_unlink_pads")
  (return-type "none")
  (parameters
    '("const-gchar*" "srcpadname")
    '("GstElement*" "dest")
    '("const-gchar*" "destpadname")
  )
)

(define-method link_pads_filtered
  (of-object "GstElement")
  (c-name "gst_element_link_pads_filtered")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "srcpadname")
    '("GstElement*" "dest")
    '("const-gchar*" "destpadname")
    '("GstCaps*" "filter")
  )
)

(define-method seek_simple
  (of-object "GstElement")
  (c-name "gst_element_seek_simple")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("GstSeekFlags" "seek_flags")
    '("gint64" "seek_pos")
  )
)

(define-method can_sink_all_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_sink_all_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method can_src_all_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_src_all_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method can_sink_any_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_sink_any_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method can_src_any_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_src_any_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method query_position
  (of-object "GstElement")
  (c-name "gst_element_query_position")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64*" "cur")
  )
)

(define-method query_duration
  (of-object "GstElement")
  (c-name "gst_element_query_duration")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64*" "duration")
  )
)

(define-method query_convert
  (of-object "GstElement")
  (c-name "gst_element_query_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_val")
    '("GstFormat" "dest_format")
    '("gint64*" "dest_val")
  )
)

(define-method use_fixed_caps
  (of-object "GstPad")
  (c-name "gst_pad_use_fixed_caps")
  (return-type "none")
)

(define-method get_parent_element
  (of-object "GstPad")
  (c-name "gst_pad_get_parent_element")
  (return-type "GstElement*")
)

(define-method proxy_query_accept_caps
  (of-object "GstPad")
  (c-name "gst_pad_proxy_query_accept_caps")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method proxy_query_caps
  (of-object "GstPad")
  (c-name "gst_pad_proxy_query_caps")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method query_position
  (of-object "GstPad")
  (c-name "gst_pad_query_position")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64*" "cur")
  )
)

(define-method query_duration
  (of-object "GstPad")
  (c-name "gst_pad_query_duration")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64*" "duration")
  )
)

(define-method query_convert
  (of-object "GstPad")
  (c-name "gst_pad_query_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_val")
    '("GstFormat" "dest_format")
    '("gint64*" "dest_val")
  )
)

(define-method query_caps
  (of-object "GstPad")
  (c-name "gst_pad_query_caps")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "filter")
  )
)

(define-method query_accept_caps
  (of-object "GstPad")
  (c-name "gst_pad_query_accept_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method peer_query_position
  (of-object "GstPad")
  (c-name "gst_pad_peer_query_position")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64*" "cur")
  )
)

(define-method peer_query_duration
  (of-object "GstPad")
  (c-name "gst_pad_peer_query_duration")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64*" "duration")
  )
)

(define-method peer_query_convert
  (of-object "GstPad")
  (c-name "gst_pad_peer_query_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_val")
    '("GstFormat" "dest_format")
    '("gint64*" "dest_val")
  )
)

(define-method peer_query_caps
  (of-object "GstPad")
  (c-name "gst_pad_peer_query_caps")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "filter")
  )
)

(define-method peer_query_accept_caps
  (of-object "GstPad")
  (c-name "gst_pad_peer_query_accept_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method create_stream_id
  (of-object "GstPad")
  (c-name "gst_pad_create_stream_id")
  (return-type "gchar*")
  (parameters
    '("GstElement*" "parent")
    '("const-gchar*" "stream_id")
  )
)

(define-method create_stream_id_printf
  (of-object "GstPad")
  (c-name "gst_pad_create_stream_id_printf")
  (return-type "gchar*")
  (parameters
    '("GstElement*" "parent")
    '("const-gchar*" "stream_id")
  )
  (varargs #t)
)

(define-method create_stream_id_printf_valist
  (of-object "GstPad")
  (c-name "gst_pad_create_stream_id_printf_valist")
  (return-type "gchar*")
  (parameters
    '("GstElement*" "parent")
    '("const-gchar*" "stream_id")
    '("va_list" "var_args")
  )
)

(define-method get_stream_id
  (of-object "GstPad")
  (c-name "gst_pad_get_stream_id")
  (return-type "gchar*")
)

(define-method add_many
  (of-object "GstBin")
  (c-name "gst_bin_add_many")
  (return-type "none")
  (parameters
    '("GstElement*" "element_1")
  )
  (varargs #t)
)

(define-method remove_many
  (of-object "GstBin")
  (c-name "gst_bin_remove_many")
  (return-type "none")
  (parameters
    '("GstElement*" "element_1")
  )
  (varargs #t)
)

(define-method find_unlinked_pad
  (of-object "GstBin")
  (c-name "gst_bin_find_unlinked_pad")
  (return-type "GstPad*")
  (parameters
    '("GstPadDirection" "direction")
  )
)

(define-method sync_children_states
  (of-object "GstBin")
  (c-name "gst_bin_sync_children_states")
  (return-type "gboolean")
)

(define-function gst_parse_bin_from_description
  (c-name "gst_parse_bin_from_description")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "bin_description")
    '("gboolean" "ghost_unlinked_pads")
    '("GError**" "err")
  )
)

(define-function gst_parse_bin_from_description_full
  (c-name "gst_parse_bin_from_description_full")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "bin_description")
    '("gboolean" "ghost_unlinked_pads")
    '("GstParseContext*" "context")
    '("GstParseFlags" "flags")
    '("GError**" "err")
  )
)

(define-function gst_util_get_timestamp
  (c-name "gst_util_get_timestamp")
  (return-type "GstClockTime")
)

(define-function gst_util_array_binary_search
  (c-name "gst_util_array_binary_search")
  (return-type "gpointer")
  (parameters
    '("gpointer" "array")
    '("guint" "num_elements")
    '("gsize" "element_size")
    '("GCompareDataFunc" "search_func")
    '("GstSearchMode" "mode")
    '("gconstpointer" "search_data")
    '("gpointer" "user_data")
  )
)

(define-function gst_util_greatest_common_divisor
  (c-name "gst_util_greatest_common_divisor")
  (return-type "gint")
  (parameters
    '("gint" "a")
    '("gint" "b")
  )
)

(define-function gst_util_greatest_common_divisor_int64
  (c-name "gst_util_greatest_common_divisor_int64")
  (return-type "gint64")
  (parameters
    '("gint64" "a")
    '("gint64" "b")
  )
)

(define-function gst_util_fraction_to_double
  (c-name "gst_util_fraction_to_double")
  (return-type "none")
  (parameters
    '("gint" "src_n")
    '("gint" "src_d")
    '("gdouble*" "dest")
  )
)

(define-function gst_util_double_to_fraction
  (c-name "gst_util_double_to_fraction")
  (return-type "none")
  (parameters
    '("gdouble" "src")
    '("gint*" "dest_n")
    '("gint*" "dest_d")
  )
)

(define-function gst_util_fraction_multiply
  (c-name "gst_util_fraction_multiply")
  (return-type "gboolean")
  (parameters
    '("gint" "a_n")
    '("gint" "a_d")
    '("gint" "b_n")
    '("gint" "b_d")
    '("gint*" "res_n")
    '("gint*" "res_d")
  )
)

(define-function gst_util_fraction_add
  (c-name "gst_util_fraction_add")
  (return-type "gboolean")
  (parameters
    '("gint" "a_n")
    '("gint" "a_d")
    '("gint" "b_n")
    '("gint" "b_d")
    '("gint*" "res_n")
    '("gint*" "res_d")
  )
)

(define-function gst_util_fraction_compare
  (c-name "gst_util_fraction_compare")
  (return-type "gint")
  (parameters
    '("gint" "a_n")
    '("gint" "a_d")
    '("gint" "b_n")
    '("gint" "b_d")
  )
)



;; From gstvalue.h

(define-function gst_int_range_get_type
  (c-name "gst_int_range_get_type")
  (return-type "GType")
)

(define-function gst_int64_range_get_type
  (c-name "gst_int64_range_get_type")
  (return-type "GType")
)

(define-function gst_double_range_get_type
  (c-name "gst_double_range_get_type")
  (return-type "GType")
)

(define-function gst_fraction_range_get_type
  (c-name "gst_fraction_range_get_type")
  (return-type "GType")
)

(define-function gst_fraction_get_type
  (c-name "gst_fraction_get_type")
  (return-type "GType")
)

(define-function gst_value_list_get_type
  (c-name "gst_value_list_get_type")
  (return-type "GType")
)

(define-function gst_value_array_get_type
  (c-name "gst_value_array_get_type")
  (return-type "GType")
)

(define-function gst_bitmask_get_type
  (c-name "gst_bitmask_get_type")
  (return-type "GType")
)

(define-function gst_flagset_get_type
  (c-name "gst_flagset_get_type")
  (return-type "GType")
)

(define-function gst_g_thread_get_type
  (c-name "gst_g_thread_get_type")
  (return-type "GType")
)

(define-function gst_value_register
  (c-name "gst_value_register")
  (return-type "none")
  (parameters
    '("const-GstValueTable*" "table")
  )
)

(define-function gst_value_init_and_copy
  (c-name "gst_value_init_and_copy")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "src")
  )
)

(define-function gst_value_serialize
  (c-name "gst_value_serialize")
  (return-type "gchar*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_deserialize
  (c-name "gst_value_deserialize")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-gchar*" "src")
  )
)

(define-function gst_value_list_append_value
  (c-name "gst_value_list_append_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "append_value")
  )
)

(define-function gst_value_list_append_and_take_value
  (c-name "gst_value_list_append_and_take_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("GValue*" "append_value")
  )
)

(define-function gst_value_list_prepend_value
  (c-name "gst_value_list_prepend_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "prepend_value")
  )
)

(define-function gst_value_list_concat
  (c-name "gst_value_list_concat")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_list_merge
  (c-name "gst_value_list_merge")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_list_get_size
  (c-name "gst_value_list_get_size")
  (return-type "guint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_list_get_value
  (c-name "gst_value_list_get_value")
  (return-type "const-GValue*")
  (parameters
    '("const-GValue*" "value")
    '("guint" "index")
  )
)

(define-function gst_value_array_append_value
  (c-name "gst_value_array_append_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "append_value")
  )
)

(define-function gst_value_array_append_and_take_value
  (c-name "gst_value_array_append_and_take_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("GValue*" "append_value")
  )
)

(define-function gst_value_array_prepend_value
  (c-name "gst_value_array_prepend_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "prepend_value")
  )
)

(define-function gst_value_array_get_size
  (c-name "gst_value_array_get_size")
  (return-type "guint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_array_get_value
  (c-name "gst_value_array_get_value")
  (return-type "const-GValue*")
  (parameters
    '("const-GValue*" "value")
    '("guint" "index")
  )
)

(define-function gst_value_set_int_range
  (c-name "gst_value_set_int_range")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint" "start")
    '("gint" "end")
  )
)

(define-function gst_value_set_int_range_step
  (c-name "gst_value_set_int_range_step")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint" "start")
    '("gint" "end")
    '("gint" "step")
  )
)

(define-function gst_value_get_int_range_min
  (c-name "gst_value_get_int_range_min")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_int_range_max
  (c-name "gst_value_get_int_range_max")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_int_range_step
  (c-name "gst_value_get_int_range_step")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_int64_range
  (c-name "gst_value_set_int64_range")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint64" "start")
    '("gint64" "end")
  )
)

(define-function gst_value_set_int64_range_step
  (c-name "gst_value_set_int64_range_step")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint64" "start")
    '("gint64" "end")
    '("gint64" "step")
  )
)

(define-function gst_value_get_int64_range_min
  (c-name "gst_value_get_int64_range_min")
  (return-type "gint64")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_int64_range_max
  (c-name "gst_value_get_int64_range_max")
  (return-type "gint64")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_int64_range_step
  (c-name "gst_value_get_int64_range_step")
  (return-type "gint64")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_double_range
  (c-name "gst_value_set_double_range")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gdouble" "start")
    '("gdouble" "end")
  )
)

(define-function gst_value_get_double_range_min
  (c-name "gst_value_get_double_range_min")
  (return-type "gdouble")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_double_range_max
  (c-name "gst_value_get_double_range_max")
  (return-type "gdouble")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_caps
  (c-name "gst_value_get_caps")
  (return-type "const-GstCaps*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_caps
  (c-name "gst_value_set_caps")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_value_get_structure
  (c-name "gst_value_get_structure")
  (return-type "const-GstStructure*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_structure
  (c-name "gst_value_set_structure")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GstStructure*" "structure")
  )
)

(define-function gst_value_get_caps_features
  (c-name "gst_value_get_caps_features")
  (return-type "const-GstCapsFeatures*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_caps_features
  (c-name "gst_value_set_caps_features")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GstCapsFeatures*" "features")
  )
)

(define-function gst_value_set_fraction
  (c-name "gst_value_set_fraction")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint" "numerator")
    '("gint" "denominator")
  )
)

(define-function gst_value_get_fraction_numerator
  (c-name "gst_value_get_fraction_numerator")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_fraction_denominator
  (c-name "gst_value_get_fraction_denominator")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_fraction_multiply
  (c-name "gst_value_fraction_multiply")
  (return-type "gboolean")
  (parameters
    '("GValue*" "product")
    '("const-GValue*" "factor1")
    '("const-GValue*" "factor2")
  )
)

(define-function gst_value_fraction_subtract
  (c-name "gst_value_fraction_subtract")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "minuend")
    '("const-GValue*" "subtrahend")
  )
)

(define-function gst_value_set_fraction_range
  (c-name "gst_value_set_fraction_range")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "start")
    '("const-GValue*" "end")
  )
)

(define-function gst_value_set_fraction_range_full
  (c-name "gst_value_set_fraction_range_full")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint" "numerator_start")
    '("gint" "denominator_start")
    '("gint" "numerator_end")
    '("gint" "denominator_end")
  )
)

(define-function gst_value_get_fraction_range_min
  (c-name "gst_value_get_fraction_range_min")
  (return-type "const-GValue*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_fraction_range_max
  (c-name "gst_value_get_fraction_range_max")
  (return-type "const-GValue*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_bitmask
  (c-name "gst_value_get_bitmask")
  (return-type "guint64")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_bitmask
  (c-name "gst_value_set_bitmask")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("guint64" "bitmask")
  )
)

(define-function gst_value_set_flagset
  (c-name "gst_value_set_flagset")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("guint" "flags")
    '("guint" "mask")
  )
)

(define-function gst_value_get_flagset_flags
  (c-name "gst_value_get_flagset_flags")
  (return-type "guint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_flagset_mask
  (c-name "gst_value_get_flagset_mask")
  (return-type "guint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_compare
  (c-name "gst_value_compare")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_can_compare
  (c-name "gst_value_can_compare")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_is_subset
  (c-name "gst_value_is_subset")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_union
  (c-name "gst_value_union")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_can_union
  (c-name "gst_value_can_union")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_intersect
  (c-name "gst_value_intersect")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_can_intersect
  (c-name "gst_value_can_intersect")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_subtract
  (c-name "gst_value_subtract")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "minuend")
    '("const-GValue*" "subtrahend")
  )
)

(define-function gst_value_can_subtract
  (c-name "gst_value_can_subtract")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "minuend")
    '("const-GValue*" "subtrahend")
  )
)

(define-function gst_value_is_fixed
  (c-name "gst_value_is_fixed")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_fixate
  (c-name "gst_value_fixate")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "src")
  )
)

(define-function gst_flagset_register
  (c-name "gst_flagset_register")
  (return-type "GType")
  (parameters
    '("GType" "flags_type")
  )
)



;; From gstversion.h



;; From math-compat.h



;; From base.h



;; From gstadapter.h

(define-function gst_adapter_get_type
  (c-name "gst_adapter_get_type")
  (return-type "GType")
)

(define-function gst_adapter_new
  (c-name "gst_adapter_new")
  (is-constructor-of "GstAdapter")
  (return-type "GstAdapter*")
)

(define-method clear
  (of-object "GstAdapter")
  (c-name "gst_adapter_clear")
  (return-type "none")
)

(define-method push
  (of-object "GstAdapter")
  (c-name "gst_adapter_push")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buf")
  )
)

(define-method map
  (of-object "GstAdapter")
  (c-name "gst_adapter_map")
  (return-type "gconstpointer")
  (parameters
    '("gsize" "size")
  )
)

(define-method unmap
  (of-object "GstAdapter")
  (c-name "gst_adapter_unmap")
  (return-type "none")
)

(define-method copy
  (of-object "GstAdapter")
  (c-name "gst_adapter_copy")
  (return-type "none")
  (parameters
    '("gpointer" "dest")
    '("gsize" "offset")
    '("gsize" "size")
  )
)

(define-method copy_bytes
  (of-object "GstAdapter")
  (c-name "gst_adapter_copy_bytes")
  (return-type "GBytes*")
  (parameters
    '("gsize" "offset")
    '("gsize" "size")
  )
)

(define-method flush
  (of-object "GstAdapter")
  (c-name "gst_adapter_flush")
  (return-type "none")
  (parameters
    '("gsize" "flush")
  )
)

(define-method take
  (of-object "GstAdapter")
  (c-name "gst_adapter_take")
  (return-type "gpointer")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method take_buffer
  (of-object "GstAdapter")
  (c-name "gst_adapter_take_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method take_list
  (of-object "GstAdapter")
  (c-name "gst_adapter_take_list")
  (return-type "GList*")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method take_buffer_fast
  (of-object "GstAdapter")
  (c-name "gst_adapter_take_buffer_fast")
  (return-type "GstBuffer*")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method take_buffer_list
  (of-object "GstAdapter")
  (c-name "gst_adapter_take_buffer_list")
  (return-type "GstBufferList*")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method get_buffer
  (of-object "GstAdapter")
  (c-name "gst_adapter_get_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method get_list
  (of-object "GstAdapter")
  (c-name "gst_adapter_get_list")
  (return-type "GList*")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method get_buffer_fast
  (of-object "GstAdapter")
  (c-name "gst_adapter_get_buffer_fast")
  (return-type "GstBuffer*")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method get_buffer_list
  (of-object "GstAdapter")
  (c-name "gst_adapter_get_buffer_list")
  (return-type "GstBufferList*")
  (parameters
    '("gsize" "nbytes")
  )
)

(define-method available
  (of-object "GstAdapter")
  (c-name "gst_adapter_available")
  (return-type "gsize")
)

(define-method available_fast
  (of-object "GstAdapter")
  (c-name "gst_adapter_available_fast")
  (return-type "gsize")
)

(define-method prev_pts
  (of-object "GstAdapter")
  (c-name "gst_adapter_prev_pts")
  (return-type "GstClockTime")
  (parameters
    '("guint64*" "distance")
  )
)

(define-method prev_dts
  (of-object "GstAdapter")
  (c-name "gst_adapter_prev_dts")
  (return-type "GstClockTime")
  (parameters
    '("guint64*" "distance")
  )
)

(define-method prev_pts_at_offset
  (of-object "GstAdapter")
  (c-name "gst_adapter_prev_pts_at_offset")
  (return-type "GstClockTime")
  (parameters
    '("gsize" "offset")
    '("guint64*" "distance")
  )
)

(define-method prev_dts_at_offset
  (of-object "GstAdapter")
  (c-name "gst_adapter_prev_dts_at_offset")
  (return-type "GstClockTime")
  (parameters
    '("gsize" "offset")
    '("guint64*" "distance")
  )
)

(define-method masked_scan_uint32
  (of-object "GstAdapter")
  (c-name "gst_adapter_masked_scan_uint32")
  (return-type "gssize")
  (parameters
    '("guint32" "mask")
    '("guint32" "pattern")
    '("gsize" "offset")
    '("gsize" "size")
  )
)

(define-method masked_scan_uint32_peek
  (of-object "GstAdapter")
  (c-name "gst_adapter_masked_scan_uint32_peek")
  (return-type "gssize")
  (parameters
    '("guint32" "mask")
    '("guint32" "pattern")
    '("gsize" "offset")
    '("gsize" "size")
    '("guint32*" "value")
  )
)



;; From gstbaseparse.h

(define-function gst_base_parse_get_type
  (c-name "gst_base_parse_get_type")
  (return-type "GType")
)

(define-function gst_base_parse_frame_get_type
  (c-name "gst_base_parse_frame_get_type")
  (return-type "GType")
)

(define-function gst_base_parse_frame_new
  (c-name "gst_base_parse_frame_new")
  (is-constructor-of "GstBaseParseFrame")
  (return-type "GstBaseParseFrame*")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstBaseParseFrameFlags" "flags")
    '("gint" "overhead")
  )
)

(define-method init
  (of-object "GstBaseParseFrame")
  (c-name "gst_base_parse_frame_init")
  (return-type "none")
)

(define-method free
  (of-object "GstBaseParseFrame")
  (c-name "gst_base_parse_frame_free")
  (return-type "none")
)

(define-method push_frame
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_push_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBaseParseFrame*" "frame")
  )
)

(define-method finish_frame
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_finish_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBaseParseFrame*" "frame")
    '("gint" "size")
  )
)

(define-method set_duration
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_duration")
  (return-type "none")
  (parameters
    '("GstFormat" "fmt")
    '("gint64" "duration")
    '("gint" "interval")
  )
)

(define-method set_average_bitrate
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_average_bitrate")
  (return-type "none")
  (parameters
    '("guint" "bitrate")
  )
)

(define-method set_min_frame_size
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_min_frame_size")
  (return-type "none")
  (parameters
    '("guint" "min_size")
  )
)

(define-method set_has_timing_info
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_has_timing_info")
  (return-type "none")
  (parameters
    '("gboolean" "has_timing")
  )
)

(define-method set_syncable
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_syncable")
  (return-type "none")
  (parameters
    '("gboolean" "syncable")
  )
)

(define-method set_passthrough
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_passthrough")
  (return-type "none")
  (parameters
    '("gboolean" "passthrough")
  )
)

(define-method set_pts_interpolation
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_pts_interpolation")
  (return-type "none")
  (parameters
    '("gboolean" "pts_interpolate")
  )
)

(define-method set_infer_ts
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_infer_ts")
  (return-type "none")
  (parameters
    '("gboolean" "infer_ts")
  )
)

(define-method set_frame_rate
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_frame_rate")
  (return-type "none")
  (parameters
    '("guint" "fps_num")
    '("guint" "fps_den")
    '("guint" "lead_in")
    '("guint" "lead_out")
  )
)

(define-method set_latency
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_latency")
  (return-type "none")
  (parameters
    '("GstClockTime" "min_latency")
    '("GstClockTime" "max_latency")
  )
)

(define-method convert_default
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_convert_default")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_value")
    '("GstFormat" "dest_format")
    '("gint64*" "dest_value")
  )
)

(define-method add_index_entry
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_add_index_entry")
  (return-type "gboolean")
  (parameters
    '("guint64" "offset")
    '("GstClockTime" "ts")
    '("gboolean" "key")
    '("gboolean" "force")
  )
)

(define-method set_ts_at_offset
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_ts_at_offset")
  (return-type "none")
  (parameters
    '("gsize" "offset")
  )
)

(define-method merge_tags
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_merge_tags")
  (return-type "none")
  (parameters
    '("GstTagList*" "tags")
    '("GstTagMergeMode" "mode")
  )
)



;; From gstbasesink.h

(define-function gst_base_sink_get_type
  (c-name "gst_base_sink_get_type")
  (return-type "GType")
)

(define-method do_preroll
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_do_preroll")
  (return-type "GstFlowReturn")
  (parameters
    '("GstMiniObject*" "obj")
  )
)

(define-method wait_preroll
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_wait_preroll")
  (return-type "GstFlowReturn")
)

(define-method set_sync
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_sync")
  (return-type "none")
  (parameters
    '("gboolean" "sync")
  )
)

(define-method get_sync
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_sync")
  (return-type "gboolean")
)

(define-method set_max_lateness
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_max_lateness")
  (return-type "none")
  (parameters
    '("gint64" "max_lateness")
  )
)

(define-method get_max_lateness
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_max_lateness")
  (return-type "gint64")
)

(define-method set_qos_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_qos_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method is_qos_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_is_qos_enabled")
  (return-type "gboolean")
)

(define-method set_async_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_async_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method is_async_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_is_async_enabled")
  (return-type "gboolean")
)

(define-method set_ts_offset
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_ts_offset")
  (return-type "none")
  (parameters
    '("GstClockTimeDiff" "offset")
  )
)

(define-method get_ts_offset
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_ts_offset")
  (return-type "GstClockTimeDiff")
)

(define-method get_last_sample
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_last_sample")
  (return-type "GstSample*")
)

(define-method set_last_sample_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_last_sample_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method is_last_sample_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_is_last_sample_enabled")
  (return-type "gboolean")
)

(define-method query_latency
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_query_latency")
  (return-type "gboolean")
  (parameters
    '("gboolean*" "live")
    '("gboolean*" "upstream_live")
    '("GstClockTime*" "min_latency")
    '("GstClockTime*" "max_latency")
  )
)

(define-method get_latency
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_latency")
  (return-type "GstClockTime")
)

(define-method set_render_delay
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_render_delay")
  (return-type "none")
  (parameters
    '("GstClockTime" "delay")
  )
)

(define-method get_render_delay
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_render_delay")
  (return-type "GstClockTime")
)

(define-method set_blocksize
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_blocksize")
  (return-type "none")
  (parameters
    '("guint" "blocksize")
  )
)

(define-method get_blocksize
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_blocksize")
  (return-type "guint")
)

(define-method set_throttle_time
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_throttle_time")
  (return-type "none")
  (parameters
    '("guint64" "throttle")
  )
)

(define-method get_throttle_time
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_throttle_time")
  (return-type "guint64")
)

(define-method set_max_bitrate
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_max_bitrate")
  (return-type "none")
  (parameters
    '("guint64" "max_bitrate")
  )
)

(define-method get_max_bitrate
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_max_bitrate")
  (return-type "guint64")
)

(define-method wait_clock
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_wait_clock")
  (return-type "GstClockReturn")
  (parameters
    '("GstClockTime" "time")
    '("GstClockTimeDiff*" "jitter")
  )
)

(define-method wait
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_wait")
  (return-type "GstFlowReturn")
  (parameters
    '("GstClockTime" "time")
    '("GstClockTimeDiff*" "jitter")
  )
)



;; From gstbasesrc.h

(define-function gst_base_src_get_type
  (c-name "gst_base_src_get_type")
  (return-type "GType")
)

(define-method wait_playing
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_wait_playing")
  (return-type "GstFlowReturn")
)

(define-method set_live
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_live")
  (return-type "none")
  (parameters
    '("gboolean" "live")
  )
)

(define-method is_live
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_is_live")
  (return-type "gboolean")
)

(define-method set_format
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_format")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_dynamic_size
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_dynamic_size")
  (return-type "none")
  (parameters
    '("gboolean" "dynamic")
  )
)

(define-method set_automatic_eos
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_automatic_eos")
  (return-type "none")
  (parameters
    '("gboolean" "automatic_eos")
  )
)

(define-method set_async
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_async")
  (return-type "none")
  (parameters
    '("gboolean" "async")
  )
)

(define-method is_async
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_is_async")
  (return-type "gboolean")
)

(define-method start_complete
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_start_complete")
  (return-type "none")
  (parameters
    '("GstFlowReturn" "ret")
  )
)

(define-method start_wait
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_start_wait")
  (return-type "GstFlowReturn")
)

(define-method query_latency
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_query_latency")
  (return-type "gboolean")
  (parameters
    '("gboolean*" "live")
    '("GstClockTime*" "min_latency")
    '("GstClockTime*" "max_latency")
  )
)

(define-method set_blocksize
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_blocksize")
  (return-type "none")
  (parameters
    '("guint" "blocksize")
  )
)

(define-method get_blocksize
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_get_blocksize")
  (return-type "guint")
)

(define-method set_do_timestamp
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_do_timestamp")
  (return-type "none")
  (parameters
    '("gboolean" "timestamp")
  )
)

(define-method get_do_timestamp
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_get_do_timestamp")
  (return-type "gboolean")
)

(define-method new_seamless_segment
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_new_seamless_segment")
  (return-type "gboolean")
  (parameters
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64" "time")
  )
)

(define-method set_caps
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method get_buffer_pool
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_get_buffer_pool")
  (return-type "GstBufferPool*")
)

(define-method get_allocator
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_get_allocator")
  (return-type "none")
  (parameters
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)



;; From gstbasetransform.h

(define-function gst_base_transform_get_type
  (c-name "gst_base_transform_get_type")
  (return-type "GType")
)

(define-method set_passthrough
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_passthrough")
  (return-type "none")
  (parameters
    '("gboolean" "passthrough")
  )
)

(define-method is_passthrough
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_is_passthrough")
  (return-type "gboolean")
)

(define-method set_in_place
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_in_place")
  (return-type "none")
  (parameters
    '("gboolean" "in_place")
  )
)

(define-method is_in_place
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_is_in_place")
  (return-type "gboolean")
)

(define-method update_qos
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_update_qos")
  (return-type "none")
  (parameters
    '("gdouble" "proportion")
    '("GstClockTimeDiff" "diff")
    '("GstClockTime" "timestamp")
  )
)

(define-method set_qos_enabled
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_qos_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method is_qos_enabled
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_is_qos_enabled")
  (return-type "gboolean")
)

(define-method set_gap_aware
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_gap_aware")
  (return-type "none")
  (parameters
    '("gboolean" "gap_aware")
  )
)

(define-method set_prefer_passthrough
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_prefer_passthrough")
  (return-type "none")
  (parameters
    '("gboolean" "prefer_passthrough")
  )
)

(define-method get_buffer_pool
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_get_buffer_pool")
  (return-type "GstBufferPool*")
)

(define-method get_allocator
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_get_allocator")
  (return-type "none")
  (parameters
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)

(define-method reconfigure_sink
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_reconfigure_sink")
  (return-type "none")
)

(define-method reconfigure_src
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_reconfigure_src")
  (return-type "none")
)

(define-method update_src_caps
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_update_src_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "updated_caps")
  )
)



;; From gstbitreader-docs.h

(define-method skip_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip_unchecked")
  (return-type "none")
  (parameters
    '("guint" "nbits")
  )
)

(define-method skip_to_byte_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip_to_byte_unchecked")
  (return-type "none")
)

(define-method get_bits_uint8_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint8_unchecked")
  (return-type "guint8")
  (parameters
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint8_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint8_unchecked")
  (return-type "guint8")
  (parameters
    '("guint" "nbits")
  )
)

(define-method get_bits_uint16_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint16_unchecked")
  (return-type "guint16")
  (parameters
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint16_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint16_unchecked")
  (return-type "guint16")
  (parameters
    '("guint" "nbits")
  )
)

(define-method get_bits_uint32_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint32_unchecked")
  (return-type "guint32")
  (parameters
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint32_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint32_unchecked")
  (return-type "guint32")
  (parameters
    '("guint" "nbits")
  )
)

(define-method get_bits_uint64_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint64_unchecked")
  (return-type "guint64")
  (parameters
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint64_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint64_unchecked")
  (return-type "guint64")
  (parameters
    '("guint" "nbits")
  )
)



;; From gstbitreader.h

(define-function gst_bit_reader_new
  (c-name "gst_bit_reader_new")
  (is-constructor-of "GstBitReader")
  (return-type "GstBitReader*")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method free
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_free")
  (return-type "none")
)

(define-method init
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_init")
  (return-type "none")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method set_pos
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_set_pos")
  (return-type "gboolean")
  (parameters
    '("guint" "pos")
  )
)

(define-method get_pos
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_pos")
  (return-type "guint")
)

(define-method get_remaining
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_remaining")
  (return-type "guint")
)

(define-method get_size
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_size")
  (return-type "guint")
)

(define-method skip
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip")
  (return-type "gboolean")
  (parameters
    '("guint" "nbits")
  )
)

(define-method skip_to_byte
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip_to_byte")
  (return-type "gboolean")
)

(define-method get_bits_uint8
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8*" "val")
    '("guint" "nbits")
  )
)

(define-method get_bits_uint16
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint16")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
    '("guint" "nbits")
  )
)

(define-method get_bits_uint32
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint32")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
    '("guint" "nbits")
  )
)

(define-method get_bits_uint64
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint64")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint8
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8*" "val")
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint16
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint16")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint32
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint32")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint64
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint64")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
    '("guint" "nbits")
  )
)

(define-method skip_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip_unchecked")
  (return-type "none")
  (parameters
    '("guint" "nbits")
  )
)

(define-method skip_to_byte_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip_to_byte_unchecked")
  (return-type "none")
)



;; From gstbytereader-docs.h

(define-method skip_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_unchecked")
  (return-type "none")
  (parameters
    '("guint" "nbytes")
  )
)

(define-method get_uint8_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint8_unchecked")
  (return-type "guint8")
)

(define-method peek_uint8_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint8_unchecked")
  (return-type "guint8")
)

(define-method get_int8_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int8_unchecked")
  (return-type "gint8")
)

(define-method peek_int8_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int8_unchecked")
  (return-type "gint8")
)

(define-method get_uint16_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint16_le_unchecked")
  (return-type "guint16")
)

(define-method get_uint16_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint16_be_unchecked")
  (return-type "guint16")
)

(define-method peek_uint16_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint16_le_unchecked")
  (return-type "guint16")
)

(define-method peek_uint16_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint16_be_unchecked")
  (return-type "guint16")
)

(define-method get_int16_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int16_le_unchecked")
  (return-type "gint16")
)

(define-method get_int16_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int16_be_unchecked")
  (return-type "gint16")
)

(define-method peek_int16_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int16_le_unchecked")
  (return-type "gint16")
)

(define-method peek_int16_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int16_be_unchecked")
  (return-type "gint16")
)

(define-method get_uint24_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint24_le_unchecked")
  (return-type "guint32")
)

(define-method get_uint24_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint24_be_unchecked")
  (return-type "guint32")
)

(define-method peek_uint24_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint24_le_unchecked")
  (return-type "guint32")
)

(define-method peek_uint24_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint24_be_unchecked")
  (return-type "guint32")
)

(define-method get_int24_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int24_le_unchecked")
  (return-type "gint32")
)

(define-method get_int24_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int24_be_unchecked")
  (return-type "gint32")
)

(define-method peek_int24_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int24_le_unchecked")
  (return-type "gint32")
)

(define-method peek_int24_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int24_be_unchecked")
  (return-type "gint32")
)

(define-method get_uint32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint32_le_unchecked")
  (return-type "guint32")
)

(define-method get_uint32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint32_be_unchecked")
  (return-type "guint32")
)

(define-method peek_uint32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint32_le_unchecked")
  (return-type "guint32")
)

(define-method peek_uint32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint32_be_unchecked")
  (return-type "guint32")
)

(define-method get_int32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int32_le_unchecked")
  (return-type "gint32")
)

(define-method get_int32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int32_be_unchecked")
  (return-type "gint32")
)

(define-method peek_int32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int32_le_unchecked")
  (return-type "gint32")
)

(define-method peek_int32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int32_be_unchecked")
  (return-type "gint32")
)

(define-method get_uint64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint64_le_unchecked")
  (return-type "guint64")
)

(define-method get_uint64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint64_be_unchecked")
  (return-type "guint64")
)

(define-method peek_uint64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint64_le_unchecked")
  (return-type "guint64")
)

(define-method peek_uint64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint64_be_unchecked")
  (return-type "guint64")
)

(define-method get_int64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int64_le_unchecked")
  (return-type "gint64")
)

(define-method get_int64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int64_be_unchecked")
  (return-type "gint64")
)

(define-method peek_int64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int64_le_unchecked")
  (return-type "gint64")
)

(define-method peek_int64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int64_be_unchecked")
  (return-type "gint64")
)

(define-method get_float32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float32_le_unchecked")
  (return-type "gfloat")
)

(define-method get_float32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float32_be_unchecked")
  (return-type "gfloat")
)

(define-method get_float64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float64_le_unchecked")
  (return-type "gdouble")
)

(define-method get_float64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float64_be_unchecked")
  (return-type "gdouble")
)

(define-method peek_float32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float32_le_unchecked")
  (return-type "gfloat")
)

(define-method peek_float32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float32_be_unchecked")
  (return-type "gfloat")
)

(define-method peek_float64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float64_le_unchecked")
  (return-type "gdouble")
)

(define-method peek_float64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float64_be_unchecked")
  (return-type "gdouble")
)

(define-method peek_data_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_data_unchecked")
  (return-type "const-guint8*")
)

(define-method get_data_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_data_unchecked")
  (return-type "const-guint8*")
  (parameters
    '("guint" "size")
  )
)

(define-method dup_data_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_data_unchecked")
  (return-type "guint8*")
  (parameters
    '("guint" "size")
  )
)



;; From gstbytereader.h

(define-function gst_byte_reader_new
  (c-name "gst_byte_reader_new")
  (is-constructor-of "GstByteReader")
  (return-type "GstByteReader*")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method free
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_free")
  (return-type "none")
)

(define-method init
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_init")
  (return-type "none")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method peek_sub_reader
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_sub_reader")
  (return-type "gboolean")
  (parameters
    '("GstByteReader*" "sub_reader")
    '("guint" "size")
  )
)

(define-method get_sub_reader
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_sub_reader")
  (return-type "gboolean")
  (parameters
    '("GstByteReader*" "sub_reader")
    '("guint" "size")
  )
)

(define-method set_pos
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_set_pos")
  (return-type "gboolean")
  (parameters
    '("guint" "pos")
  )
)

(define-method get_pos
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_pos")
  (return-type "guint")
)

(define-method get_remaining
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_remaining")
  (return-type "guint")
)

(define-method get_size
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_size")
  (return-type "guint")
)

(define-method skip
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip")
  (return-type "gboolean")
  (parameters
    '("guint" "nbytes")
  )
)

(define-method get_uint8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8*" "val")
  )
)

(define-method get_int8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int8")
  (return-type "gboolean")
  (parameters
    '("gint8*" "val")
  )
)

(define-method get_uint16_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint16_le")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
  )
)

(define-method get_int16_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int16_le")
  (return-type "gboolean")
  (parameters
    '("gint16*" "val")
  )
)

(define-method get_uint16_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint16_be")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
  )
)

(define-method get_int16_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int16_be")
  (return-type "gboolean")
  (parameters
    '("gint16*" "val")
  )
)

(define-method get_uint24_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint24_le")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method get_int24_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int24_le")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method get_uint24_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint24_be")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method get_int24_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int24_be")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method get_uint32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint32_le")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method get_int32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int32_le")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method get_uint32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint32_be")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method get_int32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int32_be")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method get_uint64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint64_le")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
  )
)

(define-method get_int64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int64_le")
  (return-type "gboolean")
  (parameters
    '("gint64*" "val")
  )
)

(define-method get_uint64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint64_be")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
  )
)

(define-method get_int64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int64_be")
  (return-type "gboolean")
  (parameters
    '("gint64*" "val")
  )
)

(define-method peek_uint8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8*" "val")
  )
)

(define-method peek_int8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int8")
  (return-type "gboolean")
  (parameters
    '("gint8*" "val")
  )
)

(define-method peek_uint16_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint16_le")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
  )
)

(define-method peek_int16_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int16_le")
  (return-type "gboolean")
  (parameters
    '("gint16*" "val")
  )
)

(define-method peek_uint16_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint16_be")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
  )
)

(define-method peek_int16_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int16_be")
  (return-type "gboolean")
  (parameters
    '("gint16*" "val")
  )
)

(define-method peek_uint24_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint24_le")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method peek_int24_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int24_le")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method peek_uint24_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint24_be")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method peek_int24_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int24_be")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method peek_uint32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint32_le")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method peek_int32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int32_le")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method peek_uint32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint32_be")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method peek_int32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int32_be")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method peek_uint64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint64_le")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
  )
)

(define-method peek_int64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int64_le")
  (return-type "gboolean")
  (parameters
    '("gint64*" "val")
  )
)

(define-method peek_uint64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint64_be")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
  )
)

(define-method peek_int64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int64_be")
  (return-type "gboolean")
  (parameters
    '("gint64*" "val")
  )
)

(define-method get_float32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float32_le")
  (return-type "gboolean")
  (parameters
    '("gfloat*" "val")
  )
)

(define-method get_float32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float32_be")
  (return-type "gboolean")
  (parameters
    '("gfloat*" "val")
  )
)

(define-method get_float64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float64_le")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "val")
  )
)

(define-method get_float64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float64_be")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "val")
  )
)

(define-method peek_float32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float32_le")
  (return-type "gboolean")
  (parameters
    '("gfloat*" "val")
  )
)

(define-method peek_float32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float32_be")
  (return-type "gboolean")
  (parameters
    '("gfloat*" "val")
  )
)

(define-method peek_float64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float64_le")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "val")
  )
)

(define-method peek_float64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float64_be")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "val")
  )
)

(define-method dup_data
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_data")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
    '("guint8**" "val")
  )
)

(define-method get_data
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_data")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
    '("const-guint8**" "val")
  )
)

(define-method peek_data
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_data")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
    '("const-guint8**" "val")
  )
)

(define-method dup_string_utf8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_string_utf8")
  (return-type "gboolean")
  (parameters
    '("gchar**" "str")
  )
)

(define-method dup_string_utf16
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_string_utf16")
  (return-type "gboolean")
  (parameters
    '("guint16**" "str")
  )
)

(define-method dup_string_utf32
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_string_utf32")
  (return-type "gboolean")
  (parameters
    '("guint32**" "str")
  )
)

(define-method skip_string_utf8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_string_utf8")
  (return-type "gboolean")
)

(define-method skip_string_utf16
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_string_utf16")
  (return-type "gboolean")
)

(define-method skip_string_utf32
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_string_utf32")
  (return-type "gboolean")
)

(define-method get_string_utf8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_string_utf8")
  (return-type "gboolean")
  (parameters
    '("const-gchar**" "str")
  )
)

(define-method peek_string_utf8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_string_utf8")
  (return-type "gboolean")
  (parameters
    '("const-gchar**" "str")
  )
)

(define-method masked_scan_uint32
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_masked_scan_uint32")
  (return-type "guint")
  (parameters
    '("guint32" "mask")
    '("guint32" "pattern")
    '("guint" "offset")
    '("guint" "size")
  )
)

(define-method masked_scan_uint32_peek
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_masked_scan_uint32_peek")
  (return-type "guint")
  (parameters
    '("guint32" "mask")
    '("guint32" "pattern")
    '("guint" "offset")
    '("guint" "size")
    '("guint32*" "value")
  )
)

(define-method skip_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_unchecked")
  (return-type "none")
  (parameters
    '("guint" "nbytes")
  )
)

(define-method get_data_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_data_unchecked")
  (return-type "const-guint8*")
  (parameters
    '("guint" "size")
  )
)

(define-method dup_data_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_data_unchecked")
  (return-type "guint8*")
  (parameters
    '("guint" "size")
  )
)



;; From gstbytewriter-docs.h

(define-method put_uint8_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint8_unchecked")
  (return-type "none")
  (parameters
    '("guint8" "val")
  )
)

(define-method put_uint16_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint16_be_unchecked")
  (return-type "none")
  (parameters
    '("guint16" "val")
  )
)

(define-method put_uint24_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint24_be_unchecked")
  (return-type "none")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint32_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint32_be_unchecked")
  (return-type "none")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint64_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint64_be_unchecked")
  (return-type "none")
  (parameters
    '("guint64" "val")
  )
)

(define-method put_uint16_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint16_le_unchecked")
  (return-type "none")
  (parameters
    '("guint16" "val")
  )
)

(define-method put_uint24_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint24_le_unchecked")
  (return-type "none")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint32_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint32_le_unchecked")
  (return-type "none")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint64_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint64_le_unchecked")
  (return-type "none")
  (parameters
    '("guint64" "val")
  )
)

(define-method put_int8_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int8_unchecked")
  (return-type "none")
  (parameters
    '("gint8" "val")
  )
)

(define-method put_int16_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int16_be_unchecked")
  (return-type "none")
  (parameters
    '("gint16" "val")
  )
)

(define-method put_int24_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int24_be_unchecked")
  (return-type "none")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int32_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int32_be_unchecked")
  (return-type "none")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int64_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int64_be_unchecked")
  (return-type "none")
  (parameters
    '("gint64" "val")
  )
)

(define-method put_int16_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int16_le_unchecked")
  (return-type "none")
  (parameters
    '("gint16" "val")
  )
)

(define-method put_int24_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int24_le_unchecked")
  (return-type "none")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int32_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int32_le_unchecked")
  (return-type "none")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int64_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int64_le_unchecked")
  (return-type "none")
  (parameters
    '("gint64" "val")
  )
)

(define-method put_float32_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float32_be_unchecked")
  (return-type "none")
  (parameters
    '("gfloat" "val")
  )
)

(define-method put_float64_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float64_be_unchecked")
  (return-type "none")
  (parameters
    '("gdouble" "val")
  )
)

(define-method put_float32_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float32_le_unchecked")
  (return-type "none")
  (parameters
    '("gfloat" "val")
  )
)

(define-method put_float64_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float64_le_unchecked")
  (return-type "none")
  (parameters
    '("gdouble" "val")
  )
)

(define-method put_data_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_data_unchecked")
  (return-type "none")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method fill_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_fill_unchecked")
  (return-type "none")
  (parameters
    '("guint8" "value")
    '("guint" "size")
  )
)



;; From gstbytewriter.h

(define-function gst_byte_writer_new
  (c-name "gst_byte_writer_new")
  (is-constructor-of "GstByteWriter")
  (return-type "GstByteWriter*")
)

(define-function gst_byte_writer_new_with_size
  (c-name "gst_byte_writer_new_with_size")
  (return-type "GstByteWriter*")
  (parameters
    '("guint" "size")
    '("gboolean" "fixed")
  )
)

(define-function gst_byte_writer_new_with_data
  (c-name "gst_byte_writer_new_with_data")
  (return-type "GstByteWriter*")
  (parameters
    '("guint8*" "data")
    '("guint" "size")
    '("gboolean" "initialized")
  )
)

(define-method init
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_init")
  (return-type "none")
)

(define-method init_with_size
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_init_with_size")
  (return-type "none")
  (parameters
    '("guint" "size")
    '("gboolean" "fixed")
  )
)

(define-method init_with_data
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_init_with_data")
  (return-type "none")
  (parameters
    '("guint8*" "data")
    '("guint" "size")
    '("gboolean" "initialized")
  )
)

(define-method free
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_free")
  (return-type "none")
)

(define-method free_and_get_data
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_free_and_get_data")
  (return-type "guint8*")
)

(define-method free_and_get_buffer
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_free_and_get_buffer")
  (return-type "GstBuffer*")
)

(define-method reset
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_reset")
  (return-type "none")
)

(define-method reset_and_get_data
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_reset_and_get_data")
  (return-type "guint8*")
)

(define-method reset_and_get_buffer
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_reset_and_get_buffer")
  (return-type "GstBuffer*")
)

(define-method get_pos
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_get_pos")
  (return-type "guint")
)

(define-method set_pos
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_set_pos")
  (return-type "gboolean")
  (parameters
    '("guint" "pos")
  )
)

(define-method get_size
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_get_size")
  (return-type "guint")
)

(define-method get_remaining
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_get_remaining")
  (return-type "guint")
)

(define-method ensure_free_space
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_ensure_free_space")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
  )
)

(define-method put_uint8
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8" "val")
  )
)

(define-method put_int8
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int8")
  (return-type "gboolean")
  (parameters
    '("gint8" "val")
  )
)

(define-method put_uint16_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint16_be")
  (return-type "gboolean")
  (parameters
    '("guint16" "val")
  )
)

(define-method put_uint16_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint16_le")
  (return-type "gboolean")
  (parameters
    '("guint16" "val")
  )
)

(define-method put_int16_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int16_be")
  (return-type "gboolean")
  (parameters
    '("gint16" "val")
  )
)

(define-method put_int16_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int16_le")
  (return-type "gboolean")
  (parameters
    '("gint16" "val")
  )
)

(define-method put_uint24_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint24_be")
  (return-type "gboolean")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint24_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint24_le")
  (return-type "gboolean")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_int24_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int24_be")
  (return-type "gboolean")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int24_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int24_le")
  (return-type "gboolean")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_uint32_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint32_be")
  (return-type "gboolean")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint32_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint32_le")
  (return-type "gboolean")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_int32_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int32_be")
  (return-type "gboolean")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int32_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int32_le")
  (return-type "gboolean")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_uint64_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint64_be")
  (return-type "gboolean")
  (parameters
    '("guint64" "val")
  )
)

(define-method put_uint64_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint64_le")
  (return-type "gboolean")
  (parameters
    '("guint64" "val")
  )
)

(define-method put_int64_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int64_be")
  (return-type "gboolean")
  (parameters
    '("gint64" "val")
  )
)

(define-method put_int64_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int64_le")
  (return-type "gboolean")
  (parameters
    '("gint64" "val")
  )
)

(define-method put_float32_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float32_be")
  (return-type "gboolean")
  (parameters
    '("gfloat" "val")
  )
)

(define-method put_float32_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float32_le")
  (return-type "gboolean")
  (parameters
    '("gfloat" "val")
  )
)

(define-method put_float64_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float64_be")
  (return-type "gboolean")
  (parameters
    '("gdouble" "val")
  )
)

(define-method put_float64_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float64_le")
  (return-type "gboolean")
  (parameters
    '("gdouble" "val")
  )
)

(define-method put_data
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_data")
  (return-type "gboolean")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method fill
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_fill")
  (return-type "gboolean")
  (parameters
    '("guint8" "value")
    '("guint" "size")
  )
)

(define-method put_string_utf8
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_string_utf8")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "data")
  )
)

(define-method put_string_utf16
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_string_utf16")
  (return-type "gboolean")
  (parameters
    '("const-guint16*" "data")
  )
)

(define-method put_string_utf32
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_string_utf32")
  (return-type "gboolean")
  (parameters
    '("const-guint32*" "data")
  )
)

(define-method put_buffer
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_buffer")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("gsize" "offset")
    '("gssize" "size")
  )
)

(define-method fill_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_fill_unchecked")
  (return-type "none")
  (parameters
    '("guint8" "value")
    '("guint" "size")
  )
)

(define-method put_buffer_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_buffer_unchecked")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("gsize" "offset")
    '("gssize" "size")
  )
)



;; From gstcollectpads.h

(define-function gst_collect_pads_get_type
  (c-name "gst_collect_pads_get_type")
  (return-type "GType")
)

(define-function gst_collect_pads_new
  (c-name "gst_collect_pads_new")
  (is-constructor-of "GstCollectPads")
  (return-type "GstCollectPads*")
)

(define-method set_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsFunction" "func")
    '("gpointer" "user_data")
  )
)

(define-method set_buffer_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_buffer_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsBufferFunction" "func")
    '("gpointer" "user_data")
  )
)

(define-method set_event_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_event_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsEventFunction" "func")
    '("gpointer" "user_data")
  )
)

(define-method set_query_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_query_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsQueryFunction" "func")
    '("gpointer" "user_data")
  )
)

(define-method set_compare_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_compare_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsCompareFunction" "func")
    '("gpointer" "user_data")
  )
)

(define-method set_clip_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_clip_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsClipFunction" "clipfunc")
    '("gpointer" "user_data")
  )
)

(define-method set_flush_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_flush_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsFlushFunction" "func")
    '("gpointer" "user_data")
  )
)

(define-method add_pad
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_add_pad")
  (return-type "GstCollectData*")
  (parameters
    '("GstPad*" "pad")
    '("guint" "size")
    '("GstCollectDataDestroyNotify" "destroy_notify")
    '("gboolean" "lock")
  )
)

(define-method remove_pad
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_remove_pad")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method start
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_start")
  (return-type "none")
)

(define-method stop
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_stop")
  (return-type "none")
)

(define-method set_flushing
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method peek
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_peek")
  (return-type "GstBuffer*")
  (parameters
    '("GstCollectData*" "data")
  )
)

(define-method pop
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_pop")
  (return-type "GstBuffer*")
  (parameters
    '("GstCollectData*" "data")
  )
)

(define-method available
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_available")
  (return-type "guint")
)

(define-method flush
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_flush")
  (return-type "guint")
  (parameters
    '("GstCollectData*" "data")
    '("guint" "size")
  )
)

(define-method read_buffer
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_read_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("GstCollectData*" "data")
    '("guint" "size")
  )
)

(define-method take_buffer
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_take_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("GstCollectData*" "data")
    '("guint" "size")
  )
)

(define-method set_waiting
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_waiting")
  (return-type "none")
  (parameters
    '("GstCollectData*" "data")
    '("gboolean" "waiting")
  )
)

(define-method clip_running_time
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_clip_running_time")
  (return-type "GstFlowReturn")
  (parameters
    '("GstCollectData*" "cdata")
    '("GstBuffer*" "buf")
    '("GstBuffer**" "outbuf")
    '("gpointer" "user_data")
  )
)

(define-method event_default
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_event_default")
  (return-type "gboolean")
  (parameters
    '("GstCollectData*" "data")
    '("GstEvent*" "event")
    '("gboolean" "discard")
  )
)

(define-method src_event_default
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_src_event_default")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
    '("GstEvent*" "event")
  )
)

(define-method query_default
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_query_default")
  (return-type "gboolean")
  (parameters
    '("GstCollectData*" "data")
    '("GstQuery*" "query")
    '("gboolean" "discard")
  )
)



;; From gstdataqueue.h

(define-function gst_data_queue_get_type
  (c-name "gst_data_queue_get_type")
  (return-type "GType")
)

(define-function gst_data_queue_new
  (c-name "gst_data_queue_new")
  (is-constructor-of "GstDataQueue")
  (return-type "GstDataQueue*")
  (parameters
    '("GstDataQueueCheckFullFunction" "checkfull")
    '("GstDataQueueFullCallback" "fullcallback")
    '("GstDataQueueEmptyCallback" "emptycallback")
    '("gpointer" "checkdata")
  )
)

(define-method push
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_push")
  (return-type "gboolean")
  (parameters
    '("GstDataQueueItem*" "item")
  )
)

(define-method push_force
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_push_force")
  (return-type "gboolean")
  (parameters
    '("GstDataQueueItem*" "item")
  )
)

(define-method pop
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_pop")
  (return-type "gboolean")
  (parameters
    '("GstDataQueueItem**" "item")
  )
)

(define-method peek
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_peek")
  (return-type "gboolean")
  (parameters
    '("GstDataQueueItem**" "item")
  )
)

(define-method flush
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_flush")
  (return-type "none")
)

(define-method set_flushing
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method drop_head
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_drop_head")
  (return-type "gboolean")
  (parameters
    '("GType" "type")
  )
)

(define-method is_full
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_is_full")
  (return-type "gboolean")
)

(define-method is_empty
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_is_empty")
  (return-type "gboolean")
)

(define-method get_level
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_get_level")
  (return-type "none")
  (parameters
    '("GstDataQueueSize*" "level")
  )
)

(define-method limits_changed
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_limits_changed")
  (return-type "none")
)



;; From gstflowcombiner.h

(define-function gst_flow_combiner_new
  (c-name "gst_flow_combiner_new")
  (is-constructor-of "GstFlowCombiner")
  (return-type "GstFlowCombiner*")
)

(define-method free
  (of-object "GstFlowCombiner")
  (c-name "gst_flow_combiner_free")
  (return-type "none")
)

(define-method update_flow
  (of-object "GstFlowCombiner")
  (c-name "gst_flow_combiner_update_flow")
  (return-type "GstFlowReturn")
  (parameters
    '("GstFlowReturn" "fret")
  )
)

(define-method update_pad_flow
  (of-object "GstFlowCombiner")
  (c-name "gst_flow_combiner_update_pad_flow")
  (return-type "GstFlowReturn")
  (parameters
    '("GstPad*" "pad")
    '("GstFlowReturn" "fret")
  )
)

(define-method add_pad
  (of-object "GstFlowCombiner")
  (c-name "gst_flow_combiner_add_pad")
  (return-type "none")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method remove_pad
  (of-object "GstFlowCombiner")
  (c-name "gst_flow_combiner_remove_pad")
  (return-type "none")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method clear
  (of-object "GstFlowCombiner")
  (c-name "gst_flow_combiner_clear")
  (return-type "none")
)

(define-method reset
  (of-object "GstFlowCombiner")
  (c-name "gst_flow_combiner_reset")
  (return-type "none")
)

(define-function gst_flow_combiner_get_type
  (c-name "gst_flow_combiner_get_type")
  (return-type "GType")
)



;; From gstindex.h

(define-function gst_index_get_type
  (c-name "gst_index_get_type")
  (return-type "GType")
)

(define-function gst_index_new
  (c-name "gst_index_new")
  (is-constructor-of "GstIndex")
  (return-type "GstIndex*")
)

(define-method commit
  (of-object "GstIndex")
  (c-name "gst_index_commit")
  (return-type "none")
  (parameters
    '("gint" "id")
  )
)

(define-method get_group
  (of-object "GstIndex")
  (c-name "gst_index_get_group")
  (return-type "gint")
)

(define-method new_group
  (of-object "GstIndex")
  (c-name "gst_index_new_group")
  (return-type "gint")
)

(define-method set_group
  (of-object "GstIndex")
  (c-name "gst_index_set_group")
  (return-type "gboolean")
  (parameters
    '("gint" "groupnum")
  )
)

(define-method set_certainty
  (of-object "GstIndex")
  (c-name "gst_index_set_certainty")
  (return-type "none")
  (parameters
    '("GstIndexCertainty" "certainty")
  )
)

(define-method get_certainty
  (of-object "GstIndex")
  (c-name "gst_index_get_certainty")
  (return-type "GstIndexCertainty")
)

(define-method set_filter
  (of-object "GstIndex")
  (c-name "gst_index_set_filter")
  (return-type "none")
  (parameters
    '("GstIndexFilter" "filter")
    '("gpointer" "user_data")
  )
)

(define-method set_filter_full
  (of-object "GstIndex")
  (c-name "gst_index_set_filter_full")
  (return-type "none")
  (parameters
    '("GstIndexFilter" "filter")
    '("gpointer" "user_data")
    '("GDestroyNotify" "user_data_destroy")
  )
)

(define-method set_resolver
  (of-object "GstIndex")
  (c-name "gst_index_set_resolver")
  (return-type "none")
  (parameters
    '("GstIndexResolver" "resolver")
    '("gpointer" "user_data")
  )
)

(define-method set_resolver_full
  (of-object "GstIndex")
  (c-name "gst_index_set_resolver_full")
  (return-type "none")
  (parameters
    '("GstIndexResolver" "resolver")
    '("gpointer" "user_data")
    '("GDestroyNotify" "user_data_destroy")
  )
)

(define-method get_writer_id
  (of-object "GstIndex")
  (c-name "gst_index_get_writer_id")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "writer")
    '("gint*" "id")
  )
)

(define-method add_format
  (of-object "GstIndex")
  (c-name "gst_index_add_format")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstFormat" "format")
  )
)

(define-method add_associationv
  (of-object "GstIndex")
  (c-name "gst_index_add_associationv")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstIndexAssociationFlags" "flags")
    '("gint" "n")
    '("const-GstIndexAssociation*" "list")
  )
)

(define-method add_association
  (of-object "GstIndex")
  (c-name "gst_index_add_association")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstIndexAssociationFlags" "flags")
    '("GstFormat" "format")
    '("gint64" "value")
  )
  (varargs #t)
)

(define-method add_id
  (of-object "GstIndex")
  (c-name "gst_index_add_id")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("gchar*" "description")
  )
)

(define-method get_assoc_entry
  (of-object "GstIndex")
  (c-name "gst_index_get_assoc_entry")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstIndexLookupMethod" "method")
    '("GstIndexAssociationFlags" "flags")
    '("GstFormat" "format")
    '("gint64" "value")
  )
)

(define-method get_assoc_entry_full
  (of-object "GstIndex")
  (c-name "gst_index_get_assoc_entry_full")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstIndexLookupMethod" "method")
    '("GstIndexAssociationFlags" "flags")
    '("GstFormat" "format")
    '("gint64" "value")
    '("GCompareDataFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-function gst_index_entry_get_type
  (c-name "gst_index_entry_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "GstIndexEntry")
  (c-name "gst_index_entry_copy")
  (return-type "GstIndexEntry*")
)

(define-method free
  (of-object "GstIndexEntry")
  (c-name "gst_index_entry_free")
  (return-type "none")
)

(define-method assoc_map
  (of-object "GstIndexEntry")
  (c-name "gst_index_entry_assoc_map")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64*" "value")
  )
)



;; From gstpushsrc.h

(define-function gst_push_src_get_type
  (c-name "gst_push_src_get_type")
  (return-type "GType")
)



;; From gstqueuearray.h

(define-function gst_queue_array_new
  (c-name "gst_queue_array_new")
  (is-constructor-of "GstQueueArray")
  (return-type "GstQueueArray*")
  (parameters
    '("guint" "initial_size")
  )
)

(define-method free
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_free")
  (return-type "none")
)

(define-method pop_head
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_pop_head")
  (return-type "gpointer")
)

(define-method peek_head
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_peek_head")
  (return-type "gpointer")
)

(define-method push_tail
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_push_tail")
  (return-type "none")
  (parameters
    '("gpointer" "data")
  )
)

(define-method is_empty
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_is_empty")
  (return-type "gboolean")
)

(define-method drop_element
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_drop_element")
  (return-type "gpointer")
  (parameters
    '("guint" "idx")
  )
)

(define-method find
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_find")
  (return-type "guint")
  (parameters
    '("GCompareFunc" "func")
    '("gpointer" "data")
  )
)

(define-method get_length
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_get_length")
  (return-type "guint")
)

(define-function gst_queue_array_new_for_struct
  (c-name "gst_queue_array_new_for_struct")
  (return-type "GstQueueArray*")
  (parameters
    '("gsize" "struct_size")
    '("guint" "initial_size")
  )
)

(define-method push_tail_struct
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_push_tail_struct")
  (return-type "none")
  (parameters
    '("gpointer" "p_struct")
  )
)

(define-method pop_head_struct
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_pop_head_struct")
  (return-type "gpointer")
)

(define-method peek_head_struct
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_peek_head_struct")
  (return-type "gpointer")
)

(define-method drop_struct
  (of-object "GstQueueArray")
  (c-name "gst_queue_array_drop_struct")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
    '("gpointer" "p_struct")
  )
)



;; From gsttypefindhelper.h

(define-function gst_type_find_helper
  (c-name "gst_type_find_helper")
  (return-type "GstCaps*")
  (parameters
    '("GstPad*" "src")
    '("guint64" "size")
  )
)

(define-function gst_type_find_helper_for_data
  (c-name "gst_type_find_helper_for_data")
  (return-type "GstCaps*")
  (parameters
    '("GstObject*" "obj")
    '("const-guint8*" "data")
    '("gsize" "size")
    '("GstTypeFindProbability*" "prob")
  )
)

(define-function gst_type_find_helper_for_buffer
  (c-name "gst_type_find_helper_for_buffer")
  (return-type "GstCaps*")
  (parameters
    '("GstObject*" "obj")
    '("GstBuffer*" "buf")
    '("GstTypeFindProbability*" "prob")
  )
)

(define-function gst_type_find_helper_for_extension
  (c-name "gst_type_find_helper_for_extension")
  (return-type "GstCaps*")
  (parameters
    '("GstObject*" "obj")
    '("const-gchar*" "extension")
  )
)

(define-function gst_type_find_helper_get_range
  (c-name "gst_type_find_helper_get_range")
  (return-type "GstCaps*")
  (parameters
    '("GstObject*" "obj")
    '("GstObject*" "parent")
    '("GstTypeFindHelperGetRangeFunction" "func")
    '("guint64" "size")
    '("const-gchar*" "extension")
    '("GstTypeFindProbability*" "prob")
  )
)



;; From check.h



;; From gstbufferstraw.h

(define-function gst_buffer_straw_start_pipeline
  (c-name "gst_buffer_straw_start_pipeline")
  (return-type "none")
  (parameters
    '("GstElement*" "bin")
    '("GstPad*" "pad")
  )
)

(define-function gst_buffer_straw_get_buffer
  (c-name "gst_buffer_straw_get_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("GstElement*" "bin")
    '("GstPad*" "pad")
  )
)

(define-function gst_buffer_straw_stop_pipeline
  (c-name "gst_buffer_straw_stop_pipeline")
  (return-type "none")
  (parameters
    '("GstElement*" "bin")
    '("GstPad*" "pad")
  )
)



;; From gstcheck.h

(define-function gst_check_init
  (c-name "gst_check_init")
  (return-type "none")
  (parameters
    '("int*" "argc")
    '("char**[]" "argv")
  )
)

(define-function gst_check_chain_func
  (c-name "gst_check_chain_func")
  (return-type "GstFlowReturn")
  (parameters
    '("GstPad*" "pad")
    '("GstObject*" "parent")
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_check_message_error
  (c-name "gst_check_message_error")
  (return-type "none")
  (parameters
    '("GstMessage*" "message")
    '("GstMessageType" "type")
    '("GQuark" "domain")
    '("gint" "code")
  )
)

(define-function gst_check_setup_element
  (c-name "gst_check_setup_element")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "factory")
  )
)

(define-function gst_check_teardown_element
  (c-name "gst_check_teardown_element")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
  )
)

(define-function gst_check_setup_src_pad
  (c-name "gst_check_setup_src_pad")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "tmpl")
  )
)

(define-function gst_check_setup_src_pad_from_template
  (c-name "gst_check_setup_src_pad_from_template")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstPadTemplate*" "tmpl")
  )
)

(define-function gst_check_setup_src_pad_by_name
  (c-name "gst_check_setup_src_pad_by_name")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "tmpl")
    '("const-gchar*" "name")
  )
)

(define-function gst_check_setup_src_pad_by_name_from_template
  (c-name "gst_check_setup_src_pad_by_name_from_template")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstPadTemplate*" "tmpl")
    '("const-gchar*" "name")
  )
)

(define-function gst_check_setup_sink_pad
  (c-name "gst_check_setup_sink_pad")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "tmpl")
  )
)

(define-function gst_check_setup_sink_pad_from_template
  (c-name "gst_check_setup_sink_pad_from_template")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstPadTemplate*" "tmpl")
  )
)

(define-function gst_check_setup_sink_pad_by_name
  (c-name "gst_check_setup_sink_pad_by_name")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "tmpl")
    '("const-gchar*" "name")
  )
)

(define-function gst_check_setup_sink_pad_by_name_from_template
  (c-name "gst_check_setup_sink_pad_by_name_from_template")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstPadTemplate*" "tmpl")
    '("const-gchar*" "name")
  )
)

(define-function gst_check_teardown_pad_by_name
  (c-name "gst_check_teardown_pad_by_name")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "name")
  )
)

(define-function gst_check_teardown_src_pad
  (c-name "gst_check_teardown_src_pad")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
  )
)

(define-function gst_check_drop_buffers
  (c-name "gst_check_drop_buffers")
  (return-type "none")
)

(define-function gst_check_caps_equal
  (c-name "gst_check_caps_equal")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps1")
    '("GstCaps*" "caps2")
  )
)

(define-function gst_check_buffer_data
  (c-name "gst_check_buffer_data")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("gconstpointer" "data")
    '("gsize" "size")
  )
)

(define-function gst_check_element_push_buffer_list
  (c-name "gst_check_element_push_buffer_list")
  (return-type "none")
  (parameters
    '("const-gchar*" "element_name")
    '("GList*" "buffer_in")
    '("GstCaps*" "caps_in")
    '("GList*" "buffer_out")
    '("GstCaps*" "caps_out")
    '("GstFlowReturn" "last_flow_return")
  )
)

(define-function gst_check_element_push_buffer
  (c-name "gst_check_element_push_buffer")
  (return-type "none")
  (parameters
    '("const-gchar*" "element_name")
    '("GstBuffer*" "buffer_in")
    '("GstCaps*" "caps_in")
    '("GstBuffer*" "buffer_out")
    '("GstCaps*" "caps_out")
  )
)

(define-function gst_check_teardown_sink_pad
  (c-name "gst_check_teardown_sink_pad")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
  )
)

(define-function gst_check_abi_list
  (c-name "gst_check_abi_list")
  (return-type "none")
  (parameters
    '("GstCheckABIStruct[]" "list")
    '("gboolean" "have_abi_sizes")
  )
)

(define-function gst_check_run_suite
  (c-name "gst_check_run_suite")
  (return-type "gint")
  (parameters
    '("Suite*" "suite")
    '("const-gchar*" "name")
    '("const-gchar*" "fname")
  )
)

(define-function gst_check_setup_events
  (c-name "gst_check_setup_events")
  (return-type "none")
  (parameters
    '("GstPad*" "srcpad")
    '("GstElement*" "element")
    '("GstCaps*" "caps")
    '("GstFormat" "format")
  )
)

(define-function gst_check_setup_events_with_stream_id
  (c-name "gst_check_setup_events_with_stream_id")
  (return-type "none")
  (parameters
    '("GstPad*" "srcpad")
    '("GstElement*" "element")
    '("GstCaps*" "caps")
    '("GstFormat" "format")
    '("const-gchar*" "stream_id")
  )
)

(define-function gst_check_objects_destroyed_on_unref
  (c-name "gst_check_objects_destroyed_on_unref")
  (return-type "none")
  (parameters
    '("gpointer" "object_to_unref")
    '("gpointer" "first_object")
  )
  (varargs #t)
)

(define-function gst_check_object_destroyed_on_unref
  (c-name "gst_check_object_destroyed_on_unref")
  (return-type "none")
  (parameters
    '("gpointer" "object_to_unref")
  )
)



;; From gstconsistencychecker.h

(define-function gst_consistency_checker_new
  (c-name "gst_consistency_checker_new")
  (is-constructor-of "GstConsistencyChecker")
  (return-type "GstStreamConsistency*")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-function gst_consistency_checker_add_pad
  (c-name "gst_consistency_checker_add_pad")
  (return-type "gboolean")
  (parameters
    '("GstStreamConsistency*" "consist")
    '("GstPad*" "pad")
  )
)

(define-function gst_consistency_checker_reset
  (c-name "gst_consistency_checker_reset")
  (return-type "none")
  (parameters
    '("GstStreamConsistency*" "consist")
  )
)

(define-function gst_consistency_checker_free
  (c-name "gst_consistency_checker_free")
  (return-type "none")
  (parameters
    '("GstStreamConsistency*" "consist")
  )
)



;; From gstharness.h

(define-function gst_harness_new_empty
  (c-name "gst_harness_new_empty")
  (return-type "GstHarness*")
)

(define-method add_element_full
  (of-object "GstHarness")
  (c-name "gst_harness_add_element_full")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "hsrc")
    '("const-gchar*" "element_sinkpad_name")
    '("GstStaticPadTemplate*" "hsink")
    '("const-gchar*" "element_srcpad_name")
  )
)

(define-function gst_harness_new_full
  (c-name "gst_harness_new_full")
  (return-type "GstHarness*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "hsrc")
    '("const-gchar*" "element_sinkpad_name")
    '("GstStaticPadTemplate*" "hsink")
    '("const-gchar*" "element_srcpad_name")
  )
)

(define-function gst_harness_new_with_element
  (c-name "gst_harness_new_with_element")
  (return-type "GstHarness*")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "element_sinkpad_name")
    '("const-gchar*" "element_srcpad_name")
  )
)

(define-function gst_harness_new_with_padnames
  (c-name "gst_harness_new_with_padnames")
  (return-type "GstHarness*")
  (parameters
    '("const-gchar*" "element_name")
    '("const-gchar*" "element_sinkpad_name")
    '("const-gchar*" "element_srcpad_name")
  )
)

(define-function gst_harness_new_with_templates
  (c-name "gst_harness_new_with_templates")
  (return-type "GstHarness*")
  (parameters
    '("const-gchar*" "element_name")
    '("GstStaticPadTemplate*" "hsrc")
    '("GstStaticPadTemplate*" "hsink")
  )
)

(define-function gst_harness_new
  (c-name "gst_harness_new")
  (is-constructor-of "GstHarness")
  (return-type "GstHarness*")
  (parameters
    '("const-gchar*" "element_name")
  )
)

(define-function gst_harness_new_parse
  (c-name "gst_harness_new_parse")
  (return-type "GstHarness*")
  (parameters
    '("const-gchar*" "launchline")
  )
)

(define-method add_parse
  (of-object "GstHarness")
  (c-name "gst_harness_add_parse")
  (return-type "none")
  (parameters
    '("const-gchar*" "launchline")
  )
)

(define-method teardown
  (of-object "GstHarness")
  (c-name "gst_harness_teardown")
  (return-type "none")
)

(define-method add_element_src_pad
  (of-object "GstHarness")
  (c-name "gst_harness_add_element_src_pad")
  (return-type "none")
  (parameters
    '("GstPad*" "srcpad")
  )
)

(define-method add_element_sink_pad
  (of-object "GstHarness")
  (c-name "gst_harness_add_element_sink_pad")
  (return-type "none")
  (parameters
    '("GstPad*" "sinkpad")
  )
)

(define-method set_src_caps
  (of-object "GstHarness")
  (c-name "gst_harness_set_src_caps")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method set_sink_caps
  (of-object "GstHarness")
  (c-name "gst_harness_set_sink_caps")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method set_caps
  (of-object "GstHarness")
  (c-name "gst_harness_set_caps")
  (return-type "none")
  (parameters
    '("GstCaps*" "in")
    '("GstCaps*" "out")
  )
)

(define-method set_src_caps_str
  (of-object "GstHarness")
  (c-name "gst_harness_set_src_caps_str")
  (return-type "none")
  (parameters
    '("const-gchar*" "str")
  )
)

(define-method set_sink_caps_str
  (of-object "GstHarness")
  (c-name "gst_harness_set_sink_caps_str")
  (return-type "none")
  (parameters
    '("const-gchar*" "str")
  )
)

(define-method set_caps_str
  (of-object "GstHarness")
  (c-name "gst_harness_set_caps_str")
  (return-type "none")
  (parameters
    '("const-gchar*" "in")
    '("const-gchar*" "out")
  )
)

(define-method use_systemclock
  (of-object "GstHarness")
  (c-name "gst_harness_use_systemclock")
  (return-type "none")
)

(define-method use_testclock
  (of-object "GstHarness")
  (c-name "gst_harness_use_testclock")
  (return-type "none")
)

(define-method get_testclock
  (of-object "GstHarness")
  (c-name "gst_harness_get_testclock")
  (return-type "GstTestClock*")
)

(define-method set_time
  (of-object "GstHarness")
  (c-name "gst_harness_set_time")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-method wait_for_clock_id_waits
  (of-object "GstHarness")
  (c-name "gst_harness_wait_for_clock_id_waits")
  (return-type "gboolean")
  (parameters
    '("guint" "waits")
    '("guint" "timeout")
  )
)

(define-method crank_single_clock_wait
  (of-object "GstHarness")
  (c-name "gst_harness_crank_single_clock_wait")
  (return-type "gboolean")
)

(define-method crank_multiple_clock_waits
  (of-object "GstHarness")
  (c-name "gst_harness_crank_multiple_clock_waits")
  (return-type "gboolean")
  (parameters
    '("guint" "waits")
  )
)

(define-method play
  (of-object "GstHarness")
  (c-name "gst_harness_play")
  (return-type "none")
)

(define-method set_blocking_push_mode
  (of-object "GstHarness")
  (c-name "gst_harness_set_blocking_push_mode")
  (return-type "none")
)

(define-method set_forwarding
  (of-object "GstHarness")
  (c-name "gst_harness_set_forwarding")
  (return-type "none")
  (parameters
    '("gboolean" "forwarding")
  )
)

(define-method create_buffer
  (of-object "GstHarness")
  (c-name "gst_harness_create_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gsize" "size")
  )
)

(define-method push
  (of-object "GstHarness")
  (c-name "gst_harness_push")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method pull
  (of-object "GstHarness")
  (c-name "gst_harness_pull")
  (return-type "GstBuffer*")
)

(define-method try_pull
  (of-object "GstHarness")
  (c-name "gst_harness_try_pull")
  (return-type "GstBuffer*")
)

(define-method push_and_pull
  (of-object "GstHarness")
  (c-name "gst_harness_push_and_pull")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method buffers_received
  (of-object "GstHarness")
  (c-name "gst_harness_buffers_received")
  (return-type "guint")
)

(define-method buffers_in_queue
  (of-object "GstHarness")
  (c-name "gst_harness_buffers_in_queue")
  (return-type "guint")
)

(define-method set_drop_buffers
  (of-object "GstHarness")
  (c-name "gst_harness_set_drop_buffers")
  (return-type "none")
  (parameters
    '("gboolean" "drop_buffers")
  )
)

(define-method dump_to_file
  (of-object "GstHarness")
  (c-name "gst_harness_dump_to_file")
  (return-type "none")
  (parameters
    '("const-gchar*" "filename")
  )
)

(define-method get_last_pushed_timestamp
  (of-object "GstHarness")
  (c-name "gst_harness_get_last_pushed_timestamp")
  (return-type "GstClockTime")
)

(define-method push_event
  (of-object "GstHarness")
  (c-name "gst_harness_push_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method pull_event
  (of-object "GstHarness")
  (c-name "gst_harness_pull_event")
  (return-type "GstEvent*")
)

(define-method try_pull_event
  (of-object "GstHarness")
  (c-name "gst_harness_try_pull_event")
  (return-type "GstEvent*")
)

(define-method events_received
  (of-object "GstHarness")
  (c-name "gst_harness_events_received")
  (return-type "guint")
)

(define-method events_in_queue
  (of-object "GstHarness")
  (c-name "gst_harness_events_in_queue")
  (return-type "guint")
)

(define-method push_upstream_event
  (of-object "GstHarness")
  (c-name "gst_harness_push_upstream_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method pull_upstream_event
  (of-object "GstHarness")
  (c-name "gst_harness_pull_upstream_event")
  (return-type "GstEvent*")
)

(define-method try_pull_upstream_event
  (of-object "GstHarness")
  (c-name "gst_harness_try_pull_upstream_event")
  (return-type "GstEvent*")
)

(define-method upstream_events_received
  (of-object "GstHarness")
  (c-name "gst_harness_upstream_events_received")
  (return-type "guint")
)

(define-method upstream_events_in_queue
  (of-object "GstHarness")
  (c-name "gst_harness_upstream_events_in_queue")
  (return-type "guint")
)

(define-method query_latency
  (of-object "GstHarness")
  (c-name "gst_harness_query_latency")
  (return-type "GstClockTime")
)

(define-method set_upstream_latency
  (of-object "GstHarness")
  (c-name "gst_harness_set_upstream_latency")
  (return-type "none")
  (parameters
    '("GstClockTime" "latency")
  )
)

(define-method set_propose_allocator
  (of-object "GstHarness")
  (c-name "gst_harness_set_propose_allocator")
  (return-type "none")
  (parameters
    '("GstAllocator*" "allocator")
    '("const-GstAllocationParams*" "params")
  )
)

(define-method get_allocator
  (of-object "GstHarness")
  (c-name "gst_harness_get_allocator")
  (return-type "none")
  (parameters
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)

(define-method add_src_harness
  (of-object "GstHarness")
  (c-name "gst_harness_add_src_harness")
  (return-type "none")
  (parameters
    '("GstHarness*" "src_harness")
    '("gboolean" "has_clock_wait")
  )
)

(define-method add_src
  (of-object "GstHarness")
  (c-name "gst_harness_add_src")
  (return-type "none")
  (parameters
    '("const-gchar*" "src_element_name")
    '("gboolean" "has_clock_wait")
  )
)

(define-method add_src_parse
  (of-object "GstHarness")
  (c-name "gst_harness_add_src_parse")
  (return-type "none")
  (parameters
    '("const-gchar*" "launchline")
    '("gboolean" "has_clock_wait")
  )
)

(define-method push_from_src
  (of-object "GstHarness")
  (c-name "gst_harness_push_from_src")
  (return-type "GstFlowReturn")
)

(define-method src_crank_and_push_many
  (of-object "GstHarness")
  (c-name "gst_harness_src_crank_and_push_many")
  (return-type "GstFlowReturn")
  (parameters
    '("gint" "cranks")
    '("gint" "pushes")
  )
)

(define-method src_push_event
  (of-object "GstHarness")
  (c-name "gst_harness_src_push_event")
  (return-type "gboolean")
)

(define-method add_sink_harness
  (of-object "GstHarness")
  (c-name "gst_harness_add_sink_harness")
  (return-type "none")
  (parameters
    '("GstHarness*" "sink_harness")
  )
)

(define-method add_sink
  (of-object "GstHarness")
  (c-name "gst_harness_add_sink")
  (return-type "none")
  (parameters
    '("const-gchar*" "sink_element_name")
  )
)

(define-method add_sink_parse
  (of-object "GstHarness")
  (c-name "gst_harness_add_sink_parse")
  (return-type "none")
  (parameters
    '("const-gchar*" "launchline")
  )
)

(define-method push_to_sink
  (of-object "GstHarness")
  (c-name "gst_harness_push_to_sink")
  (return-type "GstFlowReturn")
)

(define-method sink_push_many
  (of-object "GstHarness")
  (c-name "gst_harness_sink_push_many")
  (return-type "GstFlowReturn")
  (parameters
    '("gint" "pushes")
  )
)

(define-method find_element
  (of-object "GstHarness")
  (c-name "gst_harness_find_element")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "element_name")
  )
)

(define-method set
  (of-object "GstHarness")
  (c-name "gst_harness_set")
  (return-type "none")
  (parameters
    '("const-gchar*" "element_name")
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-method get
  (of-object "GstHarness")
  (c-name "gst_harness_get")
  (return-type "none")
  (parameters
    '("const-gchar*" "element_name")
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-method add_probe
  (of-object "GstHarness")
  (c-name "gst_harness_add_probe")
  (return-type "none")
  (parameters
    '("const-gchar*" "element_name")
    '("const-gchar*" "pad_name")
    '("GstPadProbeType" "mask")
    '("GstPadProbeCallback" "callback")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_data")
  )
)

(define-function gst_harness_stress_thread_stop
  (c-name "gst_harness_stress_thread_stop")
  (return-type "guint")
  (parameters
    '("GstHarnessThread*" "t")
  )
)

(define-method stress_custom_start
  (of-object "GstHarness")
  (c-name "gst_harness_stress_custom_start")
  (return-type "GstHarnessThread*")
  (parameters
    '("GFunc" "init")
    '("GFunc" "callback")
    '("gpointer" "data")
    '("gulong" "sleep")
  )
)

(define-method stress_statechange_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_statechange_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("gulong" "sleep")
  )
)

(define-method stress_push_buffer_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_push_buffer_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("GstCaps*" "caps")
    '("const-GstSegment*" "segment")
    '("GstBuffer*" "buf")
    '("gulong" "sleep")
  )
)

(define-method stress_push_buffer_with_cb_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_push_buffer_with_cb_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("GstCaps*" "caps")
    '("const-GstSegment*" "segment")
    '("GstHarnessPrepareBufferFunc" "func")
    '("gpointer" "data")
    '("GDestroyNotify" "notify")
    '("gulong" "sleep")
  )
)

(define-method stress_push_event_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_push_event_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("GstEvent*" "event")
    '("gulong" "sleep")
  )
)

(define-method stress_push_event_with_cb_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_push_event_with_cb_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("GstHarnessPrepareEventFunc" "func")
    '("gpointer" "data")
    '("GDestroyNotify" "notify")
    '("gulong" "sleep")
  )
)

(define-method stress_push_upstream_event_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_push_upstream_event_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("GstEvent*" "event")
    '("gulong" "sleep")
  )
)

(define-method stress_push_upstream_event_with_cb_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_push_upstream_event_with_cb_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("GstHarnessPrepareEventFunc" "func")
    '("gpointer" "data")
    '("GDestroyNotify" "notify")
    '("gulong" "sleep")
  )
)

(define-method stress_property_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_property_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("const-gchar*" "name")
    '("const-GValue*" "value")
    '("gulong" "sleep")
  )
)

(define-method stress_requestpad_start_full
  (of-object "GstHarness")
  (c-name "gst_harness_stress_requestpad_start_full")
  (return-type "GstHarnessThread*")
  (parameters
    '("GstPadTemplate*" "templ")
    '("const-gchar*" "name")
    '("GstCaps*" "caps")
    '("gboolean" "release")
    '("gulong" "sleep")
  )
)



;; From gsttestclock.h

(define-function gst_test_clock_get_type
  (c-name "gst_test_clock_get_type")
  (return-type "GType")
)

(define-function gst_test_clock_new
  (c-name "gst_test_clock_new")
  (is-constructor-of "GstTestClock")
  (return-type "GstClock*")
)

(define-function gst_test_clock_new_with_start_time
  (c-name "gst_test_clock_new_with_start_time")
  (return-type "GstClock*")
  (parameters
    '("GstClockTime" "start_time")
  )
)

(define-method set_time
  (of-object "GstTestClock")
  (c-name "gst_test_clock_set_time")
  (return-type "none")
  (parameters
    '("GstClockTime" "new_time")
  )
)

(define-method advance_time
  (of-object "GstTestClock")
  (c-name "gst_test_clock_advance_time")
  (return-type "none")
  (parameters
    '("GstClockTimeDiff" "delta")
  )
)

(define-method peek_id_count
  (of-object "GstTestClock")
  (c-name "gst_test_clock_peek_id_count")
  (return-type "guint")
)

(define-method has_id
  (of-object "GstTestClock")
  (c-name "gst_test_clock_has_id")
  (return-type "gboolean")
  (parameters
    '("GstClockID" "id")
  )
)

(define-method peek_next_pending_id
  (of-object "GstTestClock")
  (c-name "gst_test_clock_peek_next_pending_id")
  (return-type "gboolean")
  (parameters
    '("GstClockID*" "pending_id")
  )
)

(define-method wait_for_next_pending_id
  (of-object "GstTestClock")
  (c-name "gst_test_clock_wait_for_next_pending_id")
  (return-type "none")
  (parameters
    '("GstClockID*" "pending_id")
  )
)

(define-method wait_for_pending_id_count
  (of-object "GstTestClock")
  (c-name "gst_test_clock_wait_for_pending_id_count")
  (return-type "none")
  (parameters
    '("guint" "count")
  )
)

(define-method process_next_clock_id
  (of-object "GstTestClock")
  (c-name "gst_test_clock_process_next_clock_id")
  (return-type "GstClockID")
)

(define-method get_next_entry_time
  (of-object "GstTestClock")
  (c-name "gst_test_clock_get_next_entry_time")
  (return-type "GstClockTime")
)

(define-method wait_for_multiple_pending_ids
  (of-object "GstTestClock")
  (c-name "gst_test_clock_wait_for_multiple_pending_ids")
  (return-type "none")
  (parameters
    '("guint" "count")
    '("GList**" "pending_list")
  )
)

(define-method process_id_list
  (of-object "GstTestClock")
  (c-name "gst_test_clock_process_id_list")
  (return-type "guint")
  (parameters
    '("const-GList*" "pending_list")
  )
)

(define-function gst_test_clock_id_list_get_latest_time
  (c-name "gst_test_clock_id_list_get_latest_time")
  (return-type "GstClockTime")
  (parameters
    '("const-GList*" "pending_list")
  )
)

(define-method crank
  (of-object "GstTestClock")
  (c-name "gst_test_clock_crank")
  (return-type "gboolean")
)



;; From internal-check.h



;; From controller.h



;; From gstargbcontrolbinding.h

(define-function gst_argb_control_binding_get_type
  (c-name "gst_argb_control_binding_get_type")
  (return-type "GType")
)

(define-function gst_argb_control_binding_new
  (c-name "gst_argb_control_binding_new")
  (is-constructor-of "GstArgbControlBinding")
  (return-type "GstControlBinding*")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "property_name")
    '("GstControlSource*" "cs_a")
    '("GstControlSource*" "cs_r")
    '("GstControlSource*" "cs_g")
    '("GstControlSource*" "cs_b")
  )
)



;; From gstdirectcontrolbinding.h

(define-function gst_direct_control_binding_get_type
  (c-name "gst_direct_control_binding_get_type")
  (return-type "GType")
)

(define-function gst_direct_control_binding_new
  (c-name "gst_direct_control_binding_new")
  (is-constructor-of "GstDirectControlBinding")
  (return-type "GstControlBinding*")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "property_name")
    '("GstControlSource*" "cs")
  )
)

(define-function gst_direct_control_binding_new_absolute
  (c-name "gst_direct_control_binding_new_absolute")
  (return-type "GstControlBinding*")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "property_name")
    '("GstControlSource*" "cs")
  )
)



;; From gstinterpolationcontrolsource.h

(define-function gst_interpolation_control_source_get_type
  (c-name "gst_interpolation_control_source_get_type")
  (return-type "GType")
)

(define-function gst_interpolation_mode_get_type
  (c-name "gst_interpolation_mode_get_type")
  (return-type "GType")
)

(define-function gst_interpolation_control_source_new
  (c-name "gst_interpolation_control_source_new")
  (is-constructor-of "GstInterpolationControlSource")
  (return-type "GstControlSource*")
)



;; From gstlfocontrolsource.h

(define-function gst_lfo_control_source_get_type
  (c-name "gst_lfo_control_source_get_type")
  (return-type "GType")
)

(define-function gst_lfo_waveform_get_type
  (c-name "gst_lfo_waveform_get_type")
  (return-type "GType")
)

(define-function gst_lfo_control_source_new
  (c-name "gst_lfo_control_source_new")
  (is-constructor-of "GstLfoControlSource")
  (return-type "GstControlSource*")
)



;; From gsttimedvaluecontrolsource.h

(define-function gst_control_point_get_type
  (c-name "gst_control_point_get_type")
  (return-type "GType")
)

(define-function gst_timed_value_control_source_get_type
  (c-name "gst_timed_value_control_source_get_type")
  (return-type "GType")
)

(define-method find_control_point_iter
  (of-object "GstTimedValueControlSource")
  (c-name "gst_timed_value_control_source_find_control_point_iter")
  (return-type "GSequenceIter*")
  (parameters
    '("GstClockTime" "timestamp")
  )
)

(define-method set
  (of-object "GstTimedValueControlSource")
  (c-name "gst_timed_value_control_source_set")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("const-gdouble" "value")
  )
)

(define-method set_from_list
  (of-object "GstTimedValueControlSource")
  (c-name "gst_timed_value_control_source_set_from_list")
  (return-type "gboolean")
  (parameters
    '("const-GSList*" "timedvalues")
  )
)

(define-method unset
  (of-object "GstTimedValueControlSource")
  (c-name "gst_timed_value_control_source_unset")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
  )
)

(define-method unset_all
  (of-object "GstTimedValueControlSource")
  (c-name "gst_timed_value_control_source_unset_all")
  (return-type "none")
)

(define-method get_all
  (of-object "GstTimedValueControlSource")
  (c-name "gst_timed_value_control_source_get_all")
  (return-type "GList*")
)

(define-method get_count
  (of-object "GstTimedValueControlSource")
  (c-name "gst_timed_value_control_source_get_count")
  (return-type "gint")
)

(define-function gst_timed_value_control_invalidate_cache
  (c-name "gst_timed_value_control_invalidate_cache")
  (return-type "none")
  (parameters
    '("GstTimedValueControlSource*" "self")
  )
)



;; From gsttriggercontrolsource.h

(define-function gst_trigger_control_source_get_type
  (c-name "gst_trigger_control_source_get_type")
  (return-type "GType")
)

(define-function gst_trigger_control_source_new
  (c-name "gst_trigger_control_source_new")
  (is-constructor-of "GstTriggerControlSource")
  (return-type "GstControlSource*")
)



;; From gstnetaddressmeta.h

(define-function gst_net_address_meta_api_get_type
  (c-name "gst_net_address_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_net_address_meta_get_info
  (c-name "gst_net_address_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_net_address_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_net_address_meta")
  (return-type "GstNetAddressMeta*")
  (parameters
    '("GSocketAddress*" "addr")
  )
)

(define-method get_net_address_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_net_address_meta")
  (return-type "GstNetAddressMeta*")
)



;; From gstnetclientclock.h

(define-function gst_net_client_clock_get_type
  (c-name "gst_net_client_clock_get_type")
  (return-type "GType")
)

(define-function gst_net_client_clock_new
  (c-name "gst_net_client_clock_new")
  (is-constructor-of "GstNetClientClock")
  (return-type "GstClock*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "remote_address")
    '("gint" "remote_port")
    '("GstClockTime" "base_time")
  )
)

(define-function gst_ntp_clock_get_type
  (c-name "gst_ntp_clock_get_type")
  (return-type "GType")
)

(define-function gst_ntp_clock_new
  (c-name "gst_ntp_clock_new")
  (is-constructor-of "GstNtpClock")
  (return-type "GstClock*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "remote_address")
    '("gint" "remote_port")
    '("GstClockTime" "base_time")
  )
)



;; From gstnetcontrolmessagemeta.h

(define-function gst_net_control_message_meta_api_get_type
  (c-name "gst_net_control_message_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_net_control_message_meta_get_info
  (c-name "gst_net_control_message_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_net_control_message_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_net_control_message_meta")
  (return-type "GstNetControlMessageMeta*")
  (parameters
    '("GSocketControlMessage*" "message")
  )
)



;; From gstnet.h



;; From gstnettimepacket.h

(define-function gst_net_time_packet_get_type
  (c-name "gst_net_time_packet_get_type")
  (return-type "GType")
)

(define-function gst_net_time_packet_new
  (c-name "gst_net_time_packet_new")
  (is-constructor-of "GstNetTimePacket")
  (return-type "GstNetTimePacket*")
  (parameters
    '("const-guint8*" "buffer")
  )
)

(define-method copy
  (of-object "GstNetTimePacket")
  (c-name "gst_net_time_packet_copy")
  (return-type "GstNetTimePacket*")
)

(define-method free
  (of-object "GstNetTimePacket")
  (c-name "gst_net_time_packet_free")
  (return-type "none")
)

(define-method serialize
  (of-object "GstNetTimePacket")
  (c-name "gst_net_time_packet_serialize")
  (return-type "guint8*")
)

(define-function gst_net_time_packet_receive
  (c-name "gst_net_time_packet_receive")
  (return-type "GstNetTimePacket*")
  (parameters
    '("GSocket*" "socket")
    '("GSocketAddress**" "src_address")
    '("GError**" "error")
  )
)

(define-method send
  (of-object "GstNetTimePacket")
  (c-name "gst_net_time_packet_send")
  (return-type "gboolean")
  (parameters
    '("GSocket*" "socket")
    '("GSocketAddress*" "dest_address")
    '("GError**" "error")
  )
)



;; From gstnettimeprovider.h

(define-function gst_net_time_provider_get_type
  (c-name "gst_net_time_provider_get_type")
  (return-type "GType")
)

(define-function gst_net_time_provider_new
  (c-name "gst_net_time_provider_new")
  (is-constructor-of "GstNetTimeProvider")
  (return-type "GstNetTimeProvider*")
  (parameters
    '("GstClock*" "clock")
    '("const-gchar*" "address")
    '("gint" "port")
  )
)



;; From gstntppacket.h

(define-function gst_ntp_packet_get_type
  (c-name "gst_ntp_packet_get_type")
  (return-type "GType")
)

(define-function gst_ntp_error_quark
  (c-name "gst_ntp_error_quark")
  (return-type "GQuark")
)

(define-function gst_ntp_packet_new
  (c-name "gst_ntp_packet_new")
  (is-constructor-of "GstNtpPacket")
  (return-type "GstNtpPacket*")
  (parameters
    '("const-guint8*" "buffer")
    '("GError**" "error")
  )
)

(define-method copy
  (of-object "GstNtpPacket")
  (c-name "gst_ntp_packet_copy")
  (return-type "GstNtpPacket*")
)

(define-method free
  (of-object "GstNtpPacket")
  (c-name "gst_ntp_packet_free")
  (return-type "none")
)

(define-method serialize
  (of-object "GstNtpPacket")
  (c-name "gst_ntp_packet_serialize")
  (return-type "guint8*")
)

(define-function gst_ntp_packet_receive
  (c-name "gst_ntp_packet_receive")
  (return-type "GstNtpPacket*")
  (parameters
    '("GSocket*" "socket")
    '("GSocketAddress**" "src_address")
    '("GError**" "error")
  )
)

(define-method send
  (of-object "GstNtpPacket")
  (c-name "gst_ntp_packet_send")
  (return-type "gboolean")
  (parameters
    '("GSocket*" "socket")
    '("GSocketAddress*" "dest_address")
    '("GError**" "error")
  )
)



;; From gstptpclock.h

(define-function gst_ptp_clock_get_type
  (c-name "gst_ptp_clock_get_type")
  (return-type "GType")
)

(define-function gst_ptp_is_supported
  (c-name "gst_ptp_is_supported")
  (return-type "gboolean")
)

(define-function gst_ptp_is_initialized
  (c-name "gst_ptp_is_initialized")
  (return-type "gboolean")
)

(define-function gst_ptp_init
  (c-name "gst_ptp_init")
  (return-type "gboolean")
  (parameters
    '("guint64" "clock_id")
    '("gchar**" "interfaces")
  )
)

(define-function gst_ptp_deinit
  (c-name "gst_ptp_deinit")
  (return-type "none")
)

(define-method add
  (of-object "GstPtpStatisticsCallback")
  (c-name "gst_ptp_statistics_callback_add")
  (return-type "gulong")
  (parameters
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_data")
  )
)

(define-function gst_ptp_statistics_callback_remove
  (c-name "gst_ptp_statistics_callback_remove")
  (return-type "none")
  (parameters
    '("gulong" "id")
  )
)

(define-function gst_ptp_clock_new
  (c-name "gst_ptp_clock_new")
  (is-constructor-of "GstPtpClock")
  (return-type "GstClock*")
  (parameters
    '("const-gchar*" "name")
    '("guint" "domain")
  )
)



;; From gstptp_private.h



;; From net.h


;; -*- scheme -*-
; object definitions ...
(define-object AppSink
  (in-module "Gst")
  (parent "GstBaseSink")
  (c-name "GstAppSink")
  (gtype-id "GST_TYPE_APP_SINK")
)

(define-object AppSrc
  (in-module "Gst")
  (parent "GstBaseSrc")
  (c-name "GstAppSrc")
  (gtype-id "GST_TYPE_APP_SRC")
)

(define-object AudioBaseSink
  (in-module "Gst")
  (parent "GstBaseSink")
  (c-name "GstAudioBaseSink")
  (gtype-id "GST_TYPE_AUDIO_BASE_SINK")
)

(define-object AudioBaseSrc
  (in-module "Gst")
  (parent "GstPushSrc")
  (c-name "GstAudioBaseSrc")
  (gtype-id "GST_TYPE_AUDIO_BASE_SRC")
)

(define-object AudioCdSrc
  (in-module "Gst")
  (parent "GstPushSrc")
  (c-name "GstAudioCdSrc")
  (gtype-id "GST_TYPE_AUDIO_CD_SRC")
)

(define-object AudioClock
  (in-module "Gst")
  (parent "GstSystemClock")
  (c-name "GstAudioClock")
  (gtype-id "GST_TYPE_AUDIO_CLOCK")
)

(define-object AudioDecoder
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstAudioDecoder")
  (gtype-id "GST_TYPE_AUDIO_DECODER")
)

(define-object AudioEncoder
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstAudioEncoder")
  (gtype-id "GST_TYPE_AUDIO_ENCODER")
)

(define-object AudioFilter
  (in-module "Gst")
  (parent "GstBaseTransform")
  (c-name "GstAudioFilter")
  (gtype-id "GST_TYPE_AUDIO_FILTER")
)

(define-object AudioRingBuffer
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstAudioRingBuffer")
  (gtype-id "GST_TYPE_AUDIO_RING_BUFFER")
)

(define-object AudioSink
  (in-module "Gst")
  (parent "GstAudioBaseSink")
  (c-name "GstAudioSink")
  (gtype-id "GST_TYPE_AUDIO_SINK")
)

(define-object AudioSrc
  (in-module "Gst")
  (parent "GstAudioBaseSrc")
  (c-name "GstAudioSrc")
  (gtype-id "GST_TYPE_AUDIO_SRC")
)

(define-object AudioVisualizer
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstAudioVisualizer")
  (gtype-id "GST_TYPE_AUDIO_VISUALIZER")
)

(define-object ColorBalanceChannel
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstColorBalanceChannel")
  (gtype-id "GST_TYPE_COLOR_BALANCE_CHANNEL")
)

(define-object Discoverer
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstDiscoverer")
  (gtype-id "GST_TYPE_DISCOVERER")
)

(define-object FdAllocator
  (in-module "Gst")
  (parent "GstAllocator")
  (c-name "GstFdAllocator")
  (gtype-id "GST_TYPE_FD_ALLOCATOR")
)

(define-object RTPBaseDepayload
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstRTPBaseDepayload")
  (gtype-id "GST_TYPE_RTP_BASE_DEPAYLOAD")
)

(define-object RTPBasePayload
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstRTPBasePayload")
  (gtype-id "GST_TYPE_RTP_BASE_PAYLOAD")
)

(define-object RTPBaseAudioPayload
  (in-module "Gst")
  (parent "GstRTPBasePayload")
  (c-name "GstRTPBaseAudioPayload")
  (gtype-id "GST_TYPE_RTP_BASE_AUDIO_PAYLOAD")
)

(define-object TagDemux
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstTagDemux")
  (gtype-id "GST_TYPE_TAG_DEMUX")
)

(define-object TagMux
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstTagMux")
  (gtype-id "GST_TYPE_TAG_MUX")
)

(define-object VideoBufferPool
  (in-module "Gst")
  (parent "GstBufferPool")
  (c-name "GstVideoBufferPool")
  (gtype-id "GST_TYPE_VIDEO_BUFFER_POOL")
)

(define-object VideoDecoder
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstVideoDecoder")
  (gtype-id "GST_TYPE_VIDEO_DECODER")
)

(define-object VideoEncoder
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstVideoEncoder")
  (gtype-id "GST_TYPE_VIDEO_ENCODER")
)

(define-object VideoFilter
  (in-module "Gst")
  (parent "GstBaseTransform")
  (c-name "GstVideoFilter")
  (gtype-id "GST_TYPE_VIDEO_FILTER")
)

(define-object VideoSink
  (in-module "Gst")
  (parent "GstBaseSink")
  (c-name "GstVideoSink")
  (gtype-id "GST_TYPE_VIDEO_SINK")
)

;; Enumerations and flags ...

(define-flags FdMemoryFlags
  (in-module "Gst")
  (c-name "GstFdMemoryFlags")
  (gtype-id "GST_TYPE_FD_MEMORY_FLAGS")
  (values
    '("none" "GST_FD_MEMORY_FLAG_NONE")
    '("keep-mapped" "GST_FD_MEMORY_FLAG_KEEP_MAPPED")
    '("map-private" "GST_FD_MEMORY_FLAG_MAP_PRIVATE")
  )
)

(define-enum AppStreamType
  (in-module "Gst")
  (c-name "GstAppStreamType")
  (gtype-id "GST_TYPE_APP_STREAM_TYPE")
  (values
    '("stream" "GST_APP_STREAM_TYPE_STREAM")
    '("seekable" "GST_APP_STREAM_TYPE_SEEKABLE")
    '("random-access" "GST_APP_STREAM_TYPE_RANDOM_ACCESS")
  )
)

(define-flags AudioChannelMixerFlags
  (in-module "Gst")
  (c-name "GstAudioChannelMixerFlags")
  (gtype-id "GST_TYPE_AUDIO_CHANNEL_MIXER_FLAGS")
  (values
    '("none" "GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE")
    '("non-interleaved-in" "GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN")
    '("non-interleaved-out" "GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT")
    '("unpositioned-in" "GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN")
    '("unpositioned-out" "GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT")
  )
)

(define-enum AudioChannelPosition
  (in-module "Gst")
  (c-name "GstAudioChannelPosition")
  (gtype-id "GST_TYPE_AUDIO_CHANNEL_POSITION")
  (values
    '("none" "GST_AUDIO_CHANNEL_POSITION_NONE")
    '("mono" "GST_AUDIO_CHANNEL_POSITION_MONO")
    '("invalid" "GST_AUDIO_CHANNEL_POSITION_INVALID")
    '("front-left" "GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT")
    '("front-right" "GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT")
    '("front-center" "GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER")
    '("lfe1" "GST_AUDIO_CHANNEL_POSITION_LFE1")
    '("rear-left" "GST_AUDIO_CHANNEL_POSITION_REAR_LEFT")
    '("rear-right" "GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT")
    '("front-left-of-center" "GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER")
    '("front-right-of-center" "GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER")
    '("rear-center" "GST_AUDIO_CHANNEL_POSITION_REAR_CENTER")
    '("lfe2" "GST_AUDIO_CHANNEL_POSITION_LFE2")
    '("side-left" "GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT")
    '("side-right" "GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT")
    '("top-front-left" "GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT")
    '("top-front-right" "GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT")
    '("top-front-center" "GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER")
    '("top-center" "GST_AUDIO_CHANNEL_POSITION_TOP_CENTER")
    '("top-rear-left" "GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT")
    '("top-rear-right" "GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT")
    '("top-side-left" "GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT")
    '("top-side-right" "GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT")
    '("top-rear-center" "GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER")
    '("bottom-front-center" "GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER")
    '("bottom-front-left" "GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT")
    '("bottom-front-right" "GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT")
    '("wide-left" "GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT")
    '("wide-right" "GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT")
    '("surround-left" "GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT")
    '("surround-right" "GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT")
  )
)

(define-flags AudioConverterFlags
  (in-module "Gst")
  (c-name "GstAudioConverterFlags")
  (gtype-id "GST_TYPE_AUDIO_CONVERTER_FLAGS")
  (values
    '("none" "GST_AUDIO_CONVERTER_FLAG_NONE")
    '("in-writable" "GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE")
    '("variable-rate" "GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE")
  )
)

(define-enum AudioFormat
  (in-module "Gst")
  (c-name "GstAudioFormat")
  (gtype-id "GST_TYPE_AUDIO_FORMAT")
  (values
    '("unknown" "GST_AUDIO_FORMAT_UNKNOWN")
    '("encoded" "GST_AUDIO_FORMAT_ENCODED")
    '("s8" "GST_AUDIO_FORMAT_S8")
    '("u8" "GST_AUDIO_FORMAT_U8")
    '("s16le" "GST_AUDIO_FORMAT_S16LE")
    '("s16be" "GST_AUDIO_FORMAT_S16BE")
    '("u16le" "GST_AUDIO_FORMAT_U16LE")
    '("u16be" "GST_AUDIO_FORMAT_U16BE")
    '("s24-32le" "GST_AUDIO_FORMAT_S24_32LE")
    '("s24-32be" "GST_AUDIO_FORMAT_S24_32BE")
    '("u24-32le" "GST_AUDIO_FORMAT_U24_32LE")
    '("u24-32be" "GST_AUDIO_FORMAT_U24_32BE")
    '("s32le" "GST_AUDIO_FORMAT_S32LE")
    '("s32be" "GST_AUDIO_FORMAT_S32BE")
    '("u32le" "GST_AUDIO_FORMAT_U32LE")
    '("u32be" "GST_AUDIO_FORMAT_U32BE")
    '("s24le" "GST_AUDIO_FORMAT_S24LE")
    '("s24be" "GST_AUDIO_FORMAT_S24BE")
    '("u24le" "GST_AUDIO_FORMAT_U24LE")
    '("u24be" "GST_AUDIO_FORMAT_U24BE")
    '("s20le" "GST_AUDIO_FORMAT_S20LE")
    '("s20be" "GST_AUDIO_FORMAT_S20BE")
    '("u20le" "GST_AUDIO_FORMAT_U20LE")
    '("u20be" "GST_AUDIO_FORMAT_U20BE")
    '("s18le" "GST_AUDIO_FORMAT_S18LE")
    '("s18be" "GST_AUDIO_FORMAT_S18BE")
    '("u18le" "GST_AUDIO_FORMAT_U18LE")
    '("u18be" "GST_AUDIO_FORMAT_U18BE")
    '("f32le" "GST_AUDIO_FORMAT_F32LE")
    '("f32be" "GST_AUDIO_FORMAT_F32BE")
    '("f64le" "GST_AUDIO_FORMAT_F64LE")
    '("f64be" "GST_AUDIO_FORMAT_F64BE")
    '("s16" "GST_AUDIO_FORMAT_S16")
    '("u16" "GST_AUDIO_FORMAT_U16")
    '("s24-32" "GST_AUDIO_FORMAT_S24_32")
    '("u24-32" "GST_AUDIO_FORMAT_U24_32")
    '("s32" "GST_AUDIO_FORMAT_S32")
    '("u32" "GST_AUDIO_FORMAT_U32")
    '("s24" "GST_AUDIO_FORMAT_S24")
    '("u24" "GST_AUDIO_FORMAT_U24")
    '("s20" "GST_AUDIO_FORMAT_S20")
    '("u20" "GST_AUDIO_FORMAT_U20")
    '("s18" "GST_AUDIO_FORMAT_S18")
    '("u18" "GST_AUDIO_FORMAT_U18")
    '("f32" "GST_AUDIO_FORMAT_F32")
    '("f64" "GST_AUDIO_FORMAT_F64")
  )
)

(define-flags AudioFormatFlags
  (in-module "Gst")
  (c-name "GstAudioFormatFlags")
  (gtype-id "GST_TYPE_AUDIO_FORMAT_FLAGS")
  (values
    '("integer" "GST_AUDIO_FORMAT_FLAG_INTEGER")
    '("float" "GST_AUDIO_FORMAT_FLAG_FLOAT")
    '("signed" "GST_AUDIO_FORMAT_FLAG_SIGNED")
    '("complex" "GST_AUDIO_FORMAT_FLAG_COMPLEX")
    '("unpack" "GST_AUDIO_FORMAT_FLAG_UNPACK")
  )
)

(define-flags AudioPackFlags
  (in-module "Gst")
  (c-name "GstAudioPackFlags")
  (gtype-id "GST_TYPE_AUDIO_PACK_FLAGS")
  (values
    '("none" "GST_AUDIO_PACK_FLAG_NONE")
    '("truncate-range" "GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE")
  )
)

(define-flags AudioFlags
  (in-module "Gst")
  (c-name "GstAudioFlags")
  (gtype-id "GST_TYPE_AUDIO_FLAGS")
  (values
    '("none" "GST_AUDIO_FLAG_NONE")
    '("unpositioned" "GST_AUDIO_FLAG_UNPOSITIONED")
  )
)

(define-enum AudioLayout
  (in-module "Gst")
  (c-name "GstAudioLayout")
  (gtype-id "GST_TYPE_AUDIO_LAYOUT")
  (values
    '("interleaved" "GST_AUDIO_LAYOUT_INTERLEAVED")
    '("non-interleaved" "GST_AUDIO_LAYOUT_NON_INTERLEAVED")
  )
)

(define-enum AudioDitherMethod
  (in-module "Gst")
  (c-name "GstAudioDitherMethod")
  (gtype-id "GST_TYPE_AUDIO_DITHER_METHOD")
  (values
    '("none" "GST_AUDIO_DITHER_NONE")
    '("rpdf" "GST_AUDIO_DITHER_RPDF")
    '("tpdf" "GST_AUDIO_DITHER_TPDF")
    '("tpdf-hf" "GST_AUDIO_DITHER_TPDF_HF")
  )
)

(define-enum AudioNoiseShapingMethod
  (in-module "Gst")
  (c-name "GstAudioNoiseShapingMethod")
  (gtype-id "GST_TYPE_AUDIO_NOISE_SHAPING_METHOD")
  (values
    '("none" "GST_AUDIO_NOISE_SHAPING_NONE")
    '("error-feedback" "GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK")
    '("simple" "GST_AUDIO_NOISE_SHAPING_SIMPLE")
    '("medium" "GST_AUDIO_NOISE_SHAPING_MEDIUM")
    '("high" "GST_AUDIO_NOISE_SHAPING_HIGH")
  )
)

(define-flags AudioQuantizeFlags
  (in-module "Gst")
  (c-name "GstAudioQuantizeFlags")
  (gtype-id "GST_TYPE_AUDIO_QUANTIZE_FLAGS")
  (values
    '("none" "GST_AUDIO_QUANTIZE_FLAG_NONE")
    '("non-interleaved" "GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED")
  )
)

(define-enum AudioBaseSinkSlaveMethod
  (in-module "Gst")
  (c-name "GstAudioBaseSinkSlaveMethod")
  (gtype-id "GST_TYPE_AUDIO_BASE_SINK_SLAVE_METHOD")
  (values
    '("resample" "GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE")
    '("skew" "GST_AUDIO_BASE_SINK_SLAVE_SKEW")
    '("none" "GST_AUDIO_BASE_SINK_SLAVE_NONE")
    '("custom" "GST_AUDIO_BASE_SINK_SLAVE_CUSTOM")
  )
)

(define-enum AudioBaseSinkDiscontReason
  (in-module "Gst")
  (c-name "GstAudioBaseSinkDiscontReason")
  (gtype-id "GST_TYPE_AUDIO_BASE_SINK_DISCONT_REASON")
  (values
    '("no-discont" "GST_AUDIO_BASE_SINK_DISCONT_REASON_NO_DISCONT")
    '("new-caps" "GST_AUDIO_BASE_SINK_DISCONT_REASON_NEW_CAPS")
    '("flush" "GST_AUDIO_BASE_SINK_DISCONT_REASON_FLUSH")
    '("sync-latency" "GST_AUDIO_BASE_SINK_DISCONT_REASON_SYNC_LATENCY")
    '("alignment" "GST_AUDIO_BASE_SINK_DISCONT_REASON_ALIGNMENT")
    '("device-failure" "GST_AUDIO_BASE_SINK_DISCONT_REASON_DEVICE_FAILURE")
  )
)

(define-enum AudioBaseSrcSlaveMethod
  (in-module "Gst")
  (c-name "GstAudioBaseSrcSlaveMethod")
  (gtype-id "GST_TYPE_AUDIO_BASE_SRC_SLAVE_METHOD")
  (values
    '("resample" "GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE")
    '("retimestamp" "GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP")
    '("skew" "GST_AUDIO_BASE_SRC_SLAVE_SKEW")
    '("none" "GST_AUDIO_BASE_SRC_SLAVE_NONE")
  )
)

(define-enum AudioCdSrcMode
  (in-module "Gst")
  (c-name "GstAudioCdSrcMode")
  (gtype-id "GST_TYPE_AUDIO_CD_SRC_MODE")
  (values
    '("normal" "GST_AUDIO_CD_SRC_MODE_NORMAL")
    '("continuous" "GST_AUDIO_CD_SRC_MODE_CONTINUOUS")
  )
)

(define-enum AudioRingBufferState
  (in-module "Gst")
  (c-name "GstAudioRingBufferState")
  (gtype-id "GST_TYPE_AUDIO_RING_BUFFER_STATE")
  (values
    '("stopped" "GST_AUDIO_RING_BUFFER_STATE_STOPPED")
    '("paused" "GST_AUDIO_RING_BUFFER_STATE_PAUSED")
    '("started" "GST_AUDIO_RING_BUFFER_STATE_STARTED")
    '("error" "GST_AUDIO_RING_BUFFER_STATE_ERROR")
  )
)

(define-enum AudioRingBufferFormatType
  (in-module "Gst")
  (c-name "GstAudioRingBufferFormatType")
  (gtype-id "GST_TYPE_AUDIO_RING_BUFFER_FORMAT_TYPE")
  (values
    '("raw" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW")
    '("mu-law" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW")
    '("a-law" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW")
    '("ima-adpcm" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM")
    '("mpeg" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG")
    '("gsm" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM")
    '("iec958" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958")
    '("ac3" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3")
    '("eac3" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3")
    '("dts" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS")
    '("mpeg2-aac" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC")
    '("mpeg4-aac" "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC")
  )
)

(define-enum StreamVolumeFormat
  (in-module "Gst")
  (c-name "GstStreamVolumeFormat")
  (gtype-id "GST_TYPE_STREAM_VOLUME_FORMAT")
  (values
    '("linear" "GST_STREAM_VOLUME_FORMAT_LINEAR")
    '("cubic" "GST_STREAM_VOLUME_FORMAT_CUBIC")
    '("db" "GST_STREAM_VOLUME_FORMAT_DB")
  )
)

(define-enum FFTWindow
  (in-module "Gst")
  (c-name "GstFFTWindow")
  (gtype-id "GST_TYPE_FFT_WINDOW")
  (values
    '("rectangular" "GST_FFT_WINDOW_RECTANGULAR")
    '("hamming" "GST_FFT_WINDOW_HAMMING")
    '("hann" "GST_FFT_WINDOW_HANN")
    '("bartlett" "GST_FFT_WINDOW_BARTLETT")
    '("blackman" "GST_FFT_WINDOW_BLACKMAN")
  )
)

(define-enum AudioVisualizerShader
  (in-module "Gst")
  (c-name "GstAudioVisualizerShader")
  (gtype-id "GST_TYPE_AUDIO_VISUALIZER_SHADER")
  (values
    '("none" "GST_AUDIO_VISUALIZER_SHADER_NONE")
    '("fade" "GST_AUDIO_VISUALIZER_SHADER_FADE")
    '("fade-and-move-up" "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP")
    '("fade-and-move-down" "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN")
    '("fade-and-move-left" "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT")
    '("fade-and-move-right" "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT")
    '("fade-and-move-horiz-out" "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT")
    '("fade-and-move-horiz-in" "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN")
    '("fade-and-move-vert-out" "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT")
    '("fade-and-move-vert-in" "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN")
  )
)

(define-enum DiscovererResult
  (in-module "Gst")
  (c-name "GstDiscovererResult")
  (gtype-id "GST_TYPE_DISCOVERER_RESULT")
  (values
    '("ok" "GST_DISCOVERER_OK")
    '("uri-invalid" "GST_DISCOVERER_URI_INVALID")
    '("error" "GST_DISCOVERER_ERROR")
    '("timeout" "GST_DISCOVERER_TIMEOUT")
    '("busy" "GST_DISCOVERER_BUSY")
    '("missing-plugins" "GST_DISCOVERER_MISSING_PLUGINS")
  )
)

(define-flags DiscovererSerializeFlags
  (in-module "Gst")
  (c-name "GstDiscovererSerializeFlags")
  (gtype-id "GST_TYPE_DISCOVERER_SERIALIZE_FLAGS")
  (values
    '("basic" "GST_DISCOVERER_SERIALIZE_BASIC")
    '("caps" "GST_DISCOVERER_SERIALIZE_CAPS")
    '("tags" "GST_DISCOVERER_SERIALIZE_TAGS")
    '("misc" "GST_DISCOVERER_SERIALIZE_MISC")
    '("all" "GST_DISCOVERER_SERIALIZE_ALL")
  )
)

(define-enum InstallPluginsReturn
  (in-module "Gst")
  (c-name "GstInstallPluginsReturn")
  (gtype-id "GST_TYPE_INSTALL_PLUGINS_RETURN")
  (values
    '("success" "GST_INSTALL_PLUGINS_SUCCESS")
    '("not-found" "GST_INSTALL_PLUGINS_NOT_FOUND")
    '("error" "GST_INSTALL_PLUGINS_ERROR")
    '("partial-success" "GST_INSTALL_PLUGINS_PARTIAL_SUCCESS")
    '("user-abort" "GST_INSTALL_PLUGINS_USER_ABORT")
    '("crashed" "GST_INSTALL_PLUGINS_CRASHED")
    '("invalid" "GST_INSTALL_PLUGINS_INVALID")
    '("started-ok" "GST_INSTALL_PLUGINS_STARTED_OK")
    '("internal-failure" "GST_INSTALL_PLUGINS_INTERNAL_FAILURE")
    '("helper-missing" "GST_INSTALL_PLUGINS_HELPER_MISSING")
    '("install-in-progress" "GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS")
  )
)

(define-enum RTCPType
  (in-module "Gst")
  (c-name "GstRTCPType")
  (gtype-id "GST_TYPE_RTCP_TYPE")
  (values
    '("invalid" "GST_RTCP_TYPE_INVALID")
    '("sr" "GST_RTCP_TYPE_SR")
    '("rr" "GST_RTCP_TYPE_RR")
    '("sdes" "GST_RTCP_TYPE_SDES")
    '("bye" "GST_RTCP_TYPE_BYE")
    '("app" "GST_RTCP_TYPE_APP")
    '("rtpfb" "GST_RTCP_TYPE_RTPFB")
    '("psfb" "GST_RTCP_TYPE_PSFB")
  )
)

(define-enum RTCPFBType
  (in-module "Gst")
  (c-name "GstRTCPFBType")
  (gtype-id "GST_TYPE_RTCPFB_TYPE")
  (values
    '("fb-type-invalid" "GST_RTCP_FB_TYPE_INVALID")
    '("rtpfb-type-nack" "GST_RTCP_RTPFB_TYPE_NACK")
    '("rtpfb-type-tmmbr" "GST_RTCP_RTPFB_TYPE_TMMBR")
    '("rtpfb-type-tmmbn" "GST_RTCP_RTPFB_TYPE_TMMBN")
    '("rtpfb-type-rtcp-sr-req" "GST_RTCP_RTPFB_TYPE_RTCP_SR_REQ")
    '("psfb-type-pli" "GST_RTCP_PSFB_TYPE_PLI")
    '("psfb-type-sli" "GST_RTCP_PSFB_TYPE_SLI")
    '("psfb-type-rpsi" "GST_RTCP_PSFB_TYPE_RPSI")
    '("psfb-type-afb" "GST_RTCP_PSFB_TYPE_AFB")
    '("psfb-type-fir" "GST_RTCP_PSFB_TYPE_FIR")
    '("psfb-type-tstr" "GST_RTCP_PSFB_TYPE_TSTR")
    '("psfb-type-tstn" "GST_RTCP_PSFB_TYPE_TSTN")
    '("psfb-type-vbcn" "GST_RTCP_PSFB_TYPE_VBCN")
  )
)

(define-enum RTCPSDESType
  (in-module "Gst")
  (c-name "GstRTCPSDESType")
  (gtype-id "GST_TYPE_RTCPSDES_TYPE")
  (values
    '("invalid" "GST_RTCP_SDES_INVALID")
    '("end" "GST_RTCP_SDES_END")
    '("cname" "GST_RTCP_SDES_CNAME")
    '("name" "GST_RTCP_SDES_NAME")
    '("email" "GST_RTCP_SDES_EMAIL")
    '("phone" "GST_RTCP_SDES_PHONE")
    '("loc" "GST_RTCP_SDES_LOC")
    '("tool" "GST_RTCP_SDES_TOOL")
    '("note" "GST_RTCP_SDES_NOTE")
    '("priv" "GST_RTCP_SDES_PRIV")
  )
)

(define-flags RTPBufferMapFlags
  (in-module "Gst")
  (c-name "GstRTPBufferMapFlags")
  (gtype-id "GST_TYPE_RTP_BUFFER_MAP_FLAGS")
  (values
    '("skip-padding" "GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING")
    '("last" "GST_RTP_BUFFER_MAP_FLAG_LAST")
  )
)

(define-enum RTPProfile
  (in-module "Gst")
  (c-name "GstRTPProfile")
  (gtype-id "GST_TYPE_RTP_PROFILE")
  (values
    '("unknown" "GST_RTP_PROFILE_UNKNOWN")
    '("avp" "GST_RTP_PROFILE_AVP")
    '("savp" "GST_RTP_PROFILE_SAVP")
    '("avpf" "GST_RTP_PROFILE_AVPF")
    '("savpf" "GST_RTP_PROFILE_SAVPF")
  )
)

(define-enum RTPPayload
  (in-module "Gst")
  (c-name "GstRTPPayload")
  (gtype-id "GST_TYPE_RTP_PAYLOAD")
  (values
    '("pcmu" "GST_RTP_PAYLOAD_PCMU")
    '("1016" "GST_RTP_PAYLOAD_1016")
    '("g721" "GST_RTP_PAYLOAD_G721")
    '("gsm" "GST_RTP_PAYLOAD_GSM")
    '("g723" "GST_RTP_PAYLOAD_G723")
    '("dvi4-8000" "GST_RTP_PAYLOAD_DVI4_8000")
    '("dvi4-16000" "GST_RTP_PAYLOAD_DVI4_16000")
    '("lpc" "GST_RTP_PAYLOAD_LPC")
    '("pcma" "GST_RTP_PAYLOAD_PCMA")
    '("g722" "GST_RTP_PAYLOAD_G722")
    '("l16-stereo" "GST_RTP_PAYLOAD_L16_STEREO")
    '("l16-mono" "GST_RTP_PAYLOAD_L16_MONO")
    '("qcelp" "GST_RTP_PAYLOAD_QCELP")
    '("cn" "GST_RTP_PAYLOAD_CN")
    '("mpa" "GST_RTP_PAYLOAD_MPA")
    '("g728" "GST_RTP_PAYLOAD_G728")
    '("dvi4-11025" "GST_RTP_PAYLOAD_DVI4_11025")
    '("dvi4-22050" "GST_RTP_PAYLOAD_DVI4_22050")
    '("g729" "GST_RTP_PAYLOAD_G729")
    '("cellb" "GST_RTP_PAYLOAD_CELLB")
    '("jpeg" "GST_RTP_PAYLOAD_JPEG")
    '("nv" "GST_RTP_PAYLOAD_NV")
    '("h261" "GST_RTP_PAYLOAD_H261")
    '("mpv" "GST_RTP_PAYLOAD_MPV")
    '("mp2t" "GST_RTP_PAYLOAD_MP2T")
    '("h263" "GST_RTP_PAYLOAD_H263")
  )
)

(define-enum RTSPResult
  (in-module "Gst")
  (c-name "GstRTSPResult")
  (gtype-id "GST_TYPE_RTSP_RESULT")
  (values
    '("ok" "GST_RTSP_OK")
    '("error" "GST_RTSP_ERROR")
    '("einval" "GST_RTSP_EINVAL")
    '("eintr" "GST_RTSP_EINTR")
    '("enomem" "GST_RTSP_ENOMEM")
    '("eresolv" "GST_RTSP_ERESOLV")
    '("enotimpl" "GST_RTSP_ENOTIMPL")
    '("esys" "GST_RTSP_ESYS")
    '("eparse" "GST_RTSP_EPARSE")
    '("ewsastart" "GST_RTSP_EWSASTART")
    '("ewsaversion" "GST_RTSP_EWSAVERSION")
    '("eeof" "GST_RTSP_EEOF")
    '("enet" "GST_RTSP_ENET")
    '("enotip" "GST_RTSP_ENOTIP")
    '("etimeout" "GST_RTSP_ETIMEOUT")
    '("etget" "GST_RTSP_ETGET")
    '("etpost" "GST_RTSP_ETPOST")
    '("elast" "GST_RTSP_ELAST")
  )
)

(define-flags RTSPEvent
  (in-module "Gst")
  (c-name "GstRTSPEvent")
  (gtype-id "GST_TYPE_RTSP_EVENT")
  (values
    '("read" "GST_RTSP_EV_READ")
    '("write" "GST_RTSP_EV_WRITE")
  )
)

(define-enum RTSPFamily
  (in-module "Gst")
  (c-name "GstRTSPFamily")
  (gtype-id "GST_TYPE_RTSP_FAMILY")
  (values
    '("none" "GST_RTSP_FAM_NONE")
    '("inet" "GST_RTSP_FAM_INET")
    '("inet6" "GST_RTSP_FAM_INET6")
  )
)

(define-enum RTSPState
  (in-module "Gst")
  (c-name "GstRTSPState")
  (gtype-id "GST_TYPE_RTSP_STATE")
  (values
    '("invalid" "GST_RTSP_STATE_INVALID")
    '("init" "GST_RTSP_STATE_INIT")
    '("ready" "GST_RTSP_STATE_READY")
    '("seeking" "GST_RTSP_STATE_SEEKING")
    '("playing" "GST_RTSP_STATE_PLAYING")
    '("recording" "GST_RTSP_STATE_RECORDING")
  )
)

(define-enum RTSPVersion
  (in-module "Gst")
  (c-name "GstRTSPVersion")
  (gtype-id "GST_TYPE_RTSP_VERSION")
  (values
    '("invalid" "GST_RTSP_VERSION_INVALID")
    '("1-0" "GST_RTSP_VERSION_1_0")
    '("1-1" "GST_RTSP_VERSION_1_1")
  )
)

(define-flags RTSPMethod
  (in-module "Gst")
  (c-name "GstRTSPMethod")
  (gtype-id "GST_TYPE_RTSP_METHOD")
  (values
    '("invalid" "GST_RTSP_INVALID")
    '("describe" "GST_RTSP_DESCRIBE")
    '("announce" "GST_RTSP_ANNOUNCE")
    '("get-parameter" "GST_RTSP_GET_PARAMETER")
    '("options" "GST_RTSP_OPTIONS")
    '("pause" "GST_RTSP_PAUSE")
    '("play" "GST_RTSP_PLAY")
    '("record" "GST_RTSP_RECORD")
    '("redirect" "GST_RTSP_REDIRECT")
    '("setup" "GST_RTSP_SETUP")
    '("set-parameter" "GST_RTSP_SET_PARAMETER")
    '("teardown" "GST_RTSP_TEARDOWN")
    '("get" "GST_RTSP_GET")
    '("post" "GST_RTSP_POST")
  )
)

(define-enum RTSPAuthMethod
  (in-module "Gst")
  (c-name "GstRTSPAuthMethod")
  (gtype-id "GST_TYPE_RTSP_AUTH_METHOD")
  (values
    '("none" "GST_RTSP_AUTH_NONE")
    '("basic" "GST_RTSP_AUTH_BASIC")
    '("digest" "GST_RTSP_AUTH_DIGEST")
  )
)

(define-enum RTSPHeaderField
  (in-module "Gst")
  (c-name "GstRTSPHeaderField")
  (gtype-id "GST_TYPE_RTSP_HEADER_FIELD")
  (values
    '("invalid" "GST_RTSP_HDR_INVALID")
    '("accept" "GST_RTSP_HDR_ACCEPT")
    '("accept-encoding" "GST_RTSP_HDR_ACCEPT_ENCODING")
    '("accept-language" "GST_RTSP_HDR_ACCEPT_LANGUAGE")
    '("allow" "GST_RTSP_HDR_ALLOW")
    '("authorization" "GST_RTSP_HDR_AUTHORIZATION")
    '("bandwidth" "GST_RTSP_HDR_BANDWIDTH")
    '("blocksize" "GST_RTSP_HDR_BLOCKSIZE")
    '("cache-control" "GST_RTSP_HDR_CACHE_CONTROL")
    '("conference" "GST_RTSP_HDR_CONFERENCE")
    '("connection" "GST_RTSP_HDR_CONNECTION")
    '("content-base" "GST_RTSP_HDR_CONTENT_BASE")
    '("content-encoding" "GST_RTSP_HDR_CONTENT_ENCODING")
    '("content-language" "GST_RTSP_HDR_CONTENT_LANGUAGE")
    '("content-length" "GST_RTSP_HDR_CONTENT_LENGTH")
    '("content-location" "GST_RTSP_HDR_CONTENT_LOCATION")
    '("content-type" "GST_RTSP_HDR_CONTENT_TYPE")
    '("cseq" "GST_RTSP_HDR_CSEQ")
    '("date" "GST_RTSP_HDR_DATE")
    '("expires" "GST_RTSP_HDR_EXPIRES")
    '("from" "GST_RTSP_HDR_FROM")
    '("if-modified-since" "GST_RTSP_HDR_IF_MODIFIED_SINCE")
    '("last-modified" "GST_RTSP_HDR_LAST_MODIFIED")
    '("proxy-authenticate" "GST_RTSP_HDR_PROXY_AUTHENTICATE")
    '("proxy-require" "GST_RTSP_HDR_PROXY_REQUIRE")
    '("public" "GST_RTSP_HDR_PUBLIC")
    '("range" "GST_RTSP_HDR_RANGE")
    '("referer" "GST_RTSP_HDR_REFERER")
    '("require" "GST_RTSP_HDR_REQUIRE")
    '("retry-after" "GST_RTSP_HDR_RETRY_AFTER")
    '("rtp-info" "GST_RTSP_HDR_RTP_INFO")
    '("scale" "GST_RTSP_HDR_SCALE")
    '("session" "GST_RTSP_HDR_SESSION")
    '("server" "GST_RTSP_HDR_SERVER")
    '("speed" "GST_RTSP_HDR_SPEED")
    '("transport" "GST_RTSP_HDR_TRANSPORT")
    '("unsupported" "GST_RTSP_HDR_UNSUPPORTED")
    '("user-agent" "GST_RTSP_HDR_USER_AGENT")
    '("via" "GST_RTSP_HDR_VIA")
    '("www-authenticate" "GST_RTSP_HDR_WWW_AUTHENTICATE")
    '("client-challenge" "GST_RTSP_HDR_CLIENT_CHALLENGE")
    '("real-challenge1" "GST_RTSP_HDR_REAL_CHALLENGE1")
    '("real-challenge2" "GST_RTSP_HDR_REAL_CHALLENGE2")
    '("real-challenge3" "GST_RTSP_HDR_REAL_CHALLENGE3")
    '("subscribe" "GST_RTSP_HDR_SUBSCRIBE")
    '("alert" "GST_RTSP_HDR_ALERT")
    '("client-id" "GST_RTSP_HDR_CLIENT_ID")
    '("company-id" "GST_RTSP_HDR_COMPANY_ID")
    '("guid" "GST_RTSP_HDR_GUID")
    '("region-data" "GST_RTSP_HDR_REGION_DATA")
    '("max-asm-width" "GST_RTSP_HDR_MAX_ASM_WIDTH")
    '("language" "GST_RTSP_HDR_LANGUAGE")
    '("player-start-time" "GST_RTSP_HDR_PLAYER_START_TIME")
    '("location" "GST_RTSP_HDR_LOCATION")
    '("etag" "GST_RTSP_HDR_ETAG")
    '("if-match" "GST_RTSP_HDR_IF_MATCH")
    '("accept-charset" "GST_RTSP_HDR_ACCEPT_CHARSET")
    '("supported" "GST_RTSP_HDR_SUPPORTED")
    '("vary" "GST_RTSP_HDR_VARY")
    '("x-accelerate-streaming" "GST_RTSP_HDR_X_ACCELERATE_STREAMING")
    '("x-accept-authent" "GST_RTSP_HDR_X_ACCEPT_AUTHENT")
    '("x-accept-proxy-authent" "GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT")
    '("x-broadcast-id" "GST_RTSP_HDR_X_BROADCAST_ID")
    '("x-burst-streaming" "GST_RTSP_HDR_X_BURST_STREAMING")
    '("x-notice" "GST_RTSP_HDR_X_NOTICE")
    '("x-player-lag-time" "GST_RTSP_HDR_X_PLAYER_LAG_TIME")
    '("x-playlist" "GST_RTSP_HDR_X_PLAYLIST")
    '("x-playlist-change-notice" "GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE")
    '("x-playlist-gen-id" "GST_RTSP_HDR_X_PLAYLIST_GEN_ID")
    '("x-playlist-seek-id" "GST_RTSP_HDR_X_PLAYLIST_SEEK_ID")
    '("x-proxy-client-agent" "GST_RTSP_HDR_X_PROXY_CLIENT_AGENT")
    '("x-proxy-client-verb" "GST_RTSP_HDR_X_PROXY_CLIENT_VERB")
    '("x-receding-playlistchange" "GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE")
    '("x-rtp-info" "GST_RTSP_HDR_X_RTP_INFO")
    '("x-startupprofile" "GST_RTSP_HDR_X_STARTUPPROFILE")
    '("timestamp" "GST_RTSP_HDR_TIMESTAMP")
    '("authentication-info" "GST_RTSP_HDR_AUTHENTICATION_INFO")
    '("host" "GST_RTSP_HDR_HOST")
    '("pragma" "GST_RTSP_HDR_PRAGMA")
    '("x-server-ip-address" "GST_RTSP_HDR_X_SERVER_IP_ADDRESS")
    '("x-sessioncookie" "GST_RTSP_HDR_X_SESSIONCOOKIE")
    '("rtcp-interval" "GST_RTSP_HDR_RTCP_INTERVAL")
    '("keymgmt" "GST_RTSP_HDR_KEYMGMT")
    '("last" "GST_RTSP_HDR_LAST")
  )
)

(define-enum RTSPStatusCode
  (in-module "Gst")
  (c-name "GstRTSPStatusCode")
  (gtype-id "GST_TYPE_RTSP_STATUS_CODE")
  (values
    '("invalid" "GST_RTSP_STS_INVALID")
    '("continue" "GST_RTSP_STS_CONTINUE")
    '("ok" "GST_RTSP_STS_OK")
    '("created" "GST_RTSP_STS_CREATED")
    '("low-on-storage" "GST_RTSP_STS_LOW_ON_STORAGE")
    '("multiple-choices" "GST_RTSP_STS_MULTIPLE_CHOICES")
    '("moved-permanently" "GST_RTSP_STS_MOVED_PERMANENTLY")
    '("move-temporarily" "GST_RTSP_STS_MOVE_TEMPORARILY")
    '("see-other" "GST_RTSP_STS_SEE_OTHER")
    '("not-modified" "GST_RTSP_STS_NOT_MODIFIED")
    '("use-proxy" "GST_RTSP_STS_USE_PROXY")
    '("bad-request" "GST_RTSP_STS_BAD_REQUEST")
    '("unauthorized" "GST_RTSP_STS_UNAUTHORIZED")
    '("payment-required" "GST_RTSP_STS_PAYMENT_REQUIRED")
    '("forbidden" "GST_RTSP_STS_FORBIDDEN")
    '("not-found" "GST_RTSP_STS_NOT_FOUND")
    '("method-not-allowed" "GST_RTSP_STS_METHOD_NOT_ALLOWED")
    '("not-acceptable" "GST_RTSP_STS_NOT_ACCEPTABLE")
    '("proxy-auth-required" "GST_RTSP_STS_PROXY_AUTH_REQUIRED")
    '("request-timeout" "GST_RTSP_STS_REQUEST_TIMEOUT")
    '("gone" "GST_RTSP_STS_GONE")
    '("length-required" "GST_RTSP_STS_LENGTH_REQUIRED")
    '("precondition-failed" "GST_RTSP_STS_PRECONDITION_FAILED")
    '("request-entity-too-large" "GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE")
    '("request-uri-too-large" "GST_RTSP_STS_REQUEST_URI_TOO_LARGE")
    '("unsupported-media-type" "GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE")
    '("parameter-not-understood" "GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD")
    '("conference-not-found" "GST_RTSP_STS_CONFERENCE_NOT_FOUND")
    '("not-enough-bandwidth" "GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH")
    '("session-not-found" "GST_RTSP_STS_SESSION_NOT_FOUND")
    '("method-not-valid-in-this-state" "GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE")
    '("header-field-not-valid-for-resource" "GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE")
    '("invalid-range" "GST_RTSP_STS_INVALID_RANGE")
    '("parameter-is-readonly" "GST_RTSP_STS_PARAMETER_IS_READONLY")
    '("aggregate-operation-not-allowed" "GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED")
    '("only-aggregate-operation-allowed" "GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED")
    '("unsupported-transport" "GST_RTSP_STS_UNSUPPORTED_TRANSPORT")
    '("destination-unreachable" "GST_RTSP_STS_DESTINATION_UNREACHABLE")
    '("key-management-failure" "GST_RTSP_STS_KEY_MANAGEMENT_FAILURE")
    '("internal-server-error" "GST_RTSP_STS_INTERNAL_SERVER_ERROR")
    '("not-implemented" "GST_RTSP_STS_NOT_IMPLEMENTED")
    '("bad-gateway" "GST_RTSP_STS_BAD_GATEWAY")
    '("service-unavailable" "GST_RTSP_STS_SERVICE_UNAVAILABLE")
    '("gateway-timeout" "GST_RTSP_STS_GATEWAY_TIMEOUT")
    '("rtsp-version-not-supported" "GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED")
    '("option-not-supported" "GST_RTSP_STS_OPTION_NOT_SUPPORTED")
  )
)

(define-enum RTSPMsgType
  (in-module "Gst")
  (c-name "GstRTSPMsgType")
  (gtype-id "GST_TYPE_RTSP_MSG_TYPE")
  (values
    '("invalid" "GST_RTSP_MESSAGE_INVALID")
    '("request" "GST_RTSP_MESSAGE_REQUEST")
    '("response" "GST_RTSP_MESSAGE_RESPONSE")
    '("http-request" "GST_RTSP_MESSAGE_HTTP_REQUEST")
    '("http-response" "GST_RTSP_MESSAGE_HTTP_RESPONSE")
    '("data" "GST_RTSP_MESSAGE_DATA")
  )
)

(define-enum RTSPRangeUnit
  (in-module "Gst")
  (c-name "GstRTSPRangeUnit")
  (gtype-id "GST_TYPE_RTSP_RANGE_UNIT")
  (values
    '("smpte" "GST_RTSP_RANGE_SMPTE")
    '("smpte-30-drop" "GST_RTSP_RANGE_SMPTE_30_DROP")
    '("smpte-25" "GST_RTSP_RANGE_SMPTE_25")
    '("npt" "GST_RTSP_RANGE_NPT")
    '("clock" "GST_RTSP_RANGE_CLOCK")
  )
)

(define-enum RTSPTimeType
  (in-module "Gst")
  (c-name "GstRTSPTimeType")
  (gtype-id "GST_TYPE_RTSP_TIME_TYPE")
  (values
    '("seconds" "GST_RTSP_TIME_SECONDS")
    '("now" "GST_RTSP_TIME_NOW")
    '("end" "GST_RTSP_TIME_END")
    '("frames" "GST_RTSP_TIME_FRAMES")
    '("utc" "GST_RTSP_TIME_UTC")
  )
)

(define-flags RTSPTransMode
  (in-module "Gst")
  (c-name "GstRTSPTransMode")
  (gtype-id "GST_TYPE_RTSP_TRANS_MODE")
  (values
    '("unknown" "GST_RTSP_TRANS_UNKNOWN")
    '("rtp" "GST_RTSP_TRANS_RTP")
    '("rdt" "GST_RTSP_TRANS_RDT")
  )
)

(define-flags RTSPProfile
  (in-module "Gst")
  (c-name "GstRTSPProfile")
  (gtype-id "GST_TYPE_RTSP_PROFILE")
  (values
    '("unknown" "GST_RTSP_PROFILE_UNKNOWN")
    '("avp" "GST_RTSP_PROFILE_AVP")
    '("savp" "GST_RTSP_PROFILE_SAVP")
    '("avpf" "GST_RTSP_PROFILE_AVPF")
    '("savpf" "GST_RTSP_PROFILE_SAVPF")
  )
)

(define-flags RTSPLowerTrans
  (in-module "Gst")
  (c-name "GstRTSPLowerTrans")
  (gtype-id "GST_TYPE_RTSP_LOWER_TRANS")
  (values
    '("unknown" "GST_RTSP_LOWER_TRANS_UNKNOWN")
    '("udp" "GST_RTSP_LOWER_TRANS_UDP")
    '("udp-mcast" "GST_RTSP_LOWER_TRANS_UDP_MCAST")
    '("tcp" "GST_RTSP_LOWER_TRANS_TCP")
    '("http" "GST_RTSP_LOWER_TRANS_HTTP")
    '("tls" "GST_RTSP_LOWER_TRANS_TLS")
  )
)

(define-enum MIKEYType
  (in-module "Gst")
  (c-name "GstMIKEYType")
  (gtype-id "GST_TYPE_MIKEY_TYPE")
  (values
    '("invalid" "GST_MIKEY_TYPE_INVALID")
    '("psk-init" "GST_MIKEY_TYPE_PSK_INIT")
    '("psk-verify" "GST_MIKEY_TYPE_PSK_VERIFY")
    '("pk-init" "GST_MIKEY_TYPE_PK_INIT")
    '("pk-verify" "GST_MIKEY_TYPE_PK_VERIFY")
    '("dh-init" "GST_MIKEY_TYPE_DH_INIT")
    '("dh-resp" "GST_MIKEY_TYPE_DH_RESP")
    '("error" "GST_MIKEY_TYPE_ERROR")
  )
)

(define-enum MIKEYPayloadType
  (in-module "Gst")
  (c-name "GstMIKEYPayloadType")
  (gtype-id "GST_TYPE_MIKEY_PAYLOAD_TYPE")
  (values
    '("last" "GST_MIKEY_PT_LAST")
    '("kemac" "GST_MIKEY_PT_KEMAC")
    '("pke" "GST_MIKEY_PT_PKE")
    '("dh" "GST_MIKEY_PT_DH")
    '("sign" "GST_MIKEY_PT_SIGN")
    '("t" "GST_MIKEY_PT_T")
    '("id" "GST_MIKEY_PT_ID")
    '("cert" "GST_MIKEY_PT_CERT")
    '("chash" "GST_MIKEY_PT_CHASH")
    '("v" "GST_MIKEY_PT_V")
    '("sp" "GST_MIKEY_PT_SP")
    '("rand" "GST_MIKEY_PT_RAND")
    '("err" "GST_MIKEY_PT_ERR")
    '("key-data" "GST_MIKEY_PT_KEY_DATA")
    '("gen-ext" "GST_MIKEY_PT_GEN_EXT")
  )
)

(define-enum MIKEYPRFFunc
  (in-module "Gst")
  (c-name "GstMIKEYPRFFunc")
  (gtype-id "GST_TYPE_MIKEYPRF_FUNC")
  (values
    '("1" "GST_MIKEY_PRF_MIKEY_1")
  )
)

(define-enum MIKEYMapType
  (in-module "Gst")
  (c-name "GstMIKEYMapType")
  (gtype-id "GST_TYPE_MIKEY_MAP_TYPE")
  (values
    '("srtp" "GST_MIKEY_MAP_TYPE_SRTP")
  )
)

(define-enum MIKEYEncAlg
  (in-module "Gst")
  (c-name "GstMIKEYEncAlg")
  (gtype-id "GST_TYPE_MIKEY_ENC_ALG")
  (values
    '("null" "GST_MIKEY_ENC_NULL")
    '("aes-cm-128" "GST_MIKEY_ENC_AES_CM_128")
    '("aes-kw-128" "GST_MIKEY_ENC_AES_KW_128")
  )
)

(define-enum MIKEYMacAlg
  (in-module "Gst")
  (c-name "GstMIKEYMacAlg")
  (gtype-id "GST_TYPE_MIKEY_MAC_ALG")
  (values
    '("null" "GST_MIKEY_MAC_NULL")
    '("hmac-sha-1-160" "GST_MIKEY_MAC_HMAC_SHA_1_160")
  )
)

(define-enum MIKEYCacheType
  (in-module "Gst")
  (c-name "GstMIKEYCacheType")
  (gtype-id "GST_TYPE_MIKEY_CACHE_TYPE")
  (values
    '("none" "GST_MIKEY_CACHE_NONE")
    '("always" "GST_MIKEY_CACHE_ALWAYS")
    '("for-csb" "GST_MIKEY_CACHE_FOR_CSB")
  )
)

(define-enum MIKEYTSType
  (in-module "Gst")
  (c-name "GstMIKEYTSType")
  (gtype-id "GST_TYPE_MIKEYTS_TYPE")
  (values
    '("ntp-utc" "GST_MIKEY_TS_TYPE_NTP_UTC")
    '("ntp" "GST_MIKEY_TS_TYPE_NTP")
    '("counter" "GST_MIKEY_TS_TYPE_COUNTER")
  )
)

(define-enum MIKEYSecProto
  (in-module "Gst")
  (c-name "GstMIKEYSecProto")
  (gtype-id "GST_TYPE_MIKEY_SEC_PROTO")
  (values
    '("srtp" "GST_MIKEY_SEC_PROTO_SRTP")
  )
)

(define-enum MIKEYSecSRTP
  (in-module "Gst")
  (c-name "GstMIKEYSecSRTP")
  (gtype-id "GST_TYPE_MIKEY_SEC_SRTP")
  (values
    '("enc-alg" "GST_MIKEY_SP_SRTP_ENC_ALG")
    '("enc-key-len" "GST_MIKEY_SP_SRTP_ENC_KEY_LEN")
    '("auth-alg" "GST_MIKEY_SP_SRTP_AUTH_ALG")
    '("auth-key-len" "GST_MIKEY_SP_SRTP_AUTH_KEY_LEN")
    '("salt-key-len" "GST_MIKEY_SP_SRTP_SALT_KEY_LEN")
    '("prf" "GST_MIKEY_SP_SRTP_PRF")
    '("key-deriv-rate" "GST_MIKEY_SP_SRTP_KEY_DERIV_RATE")
    '("srtp-enc" "GST_MIKEY_SP_SRTP_SRTP_ENC")
    '("srtcp-enc" "GST_MIKEY_SP_SRTP_SRTCP_ENC")
    '("fec-order" "GST_MIKEY_SP_SRTP_FEC_ORDER")
    '("srtp-auth" "GST_MIKEY_SP_SRTP_SRTP_AUTH")
    '("auth-tag-len" "GST_MIKEY_SP_SRTP_AUTH_TAG_LEN")
    '("srtp-prefix-len" "GST_MIKEY_SP_SRTP_SRTP_PREFIX_LEN")
  )
)

(define-enum MIKEYKeyDataType
  (in-module "Gst")
  (c-name "GstMIKEYKeyDataType")
  (gtype-id "GST_TYPE_MIKEY_KEY_DATA_TYPE")
  (values
    '("tgk" "GST_MIKEY_KD_TGK")
    '("tek" "GST_MIKEY_KD_TEK")
  )
)

(define-enum MIKEYKVType
  (in-module "Gst")
  (c-name "GstMIKEYKVType")
  (gtype-id "GST_TYPE_MIKEYKV_TYPE")
  (values
    '("null" "GST_MIKEY_KV_NULL")
    '("spi" "GST_MIKEY_KV_SPI")
    '("interval" "GST_MIKEY_KV_INTERVAL")
  )
)

(define-enum SDPResult
  (in-module "Gst")
  (c-name "GstSDPResult")
  (gtype-id "GST_TYPE_SDP_RESULT")
  (values
    '("ok" "GST_SDP_OK")
    '("einval" "GST_SDP_EINVAL")
  )
)

(define-enum TagDemuxResult
  (in-module "Gst")
  (c-name "GstTagDemuxResult")
  (gtype-id "GST_TYPE_TAG_DEMUX_RESULT")
  (values
    '("broken-tag" "GST_TAG_DEMUX_RESULT_BROKEN_TAG")
    '("again" "GST_TAG_DEMUX_RESULT_AGAIN")
    '("ok" "GST_TAG_DEMUX_RESULT_OK")
  )
)

(define-enum TagImageType
  (in-module "Gst")
  (c-name "GstTagImageType")
  (gtype-id "GST_TYPE_TAG_IMAGE_TYPE")
  (values
    '("none" "GST_TAG_IMAGE_TYPE_NONE")
    '("undefined" "GST_TAG_IMAGE_TYPE_UNDEFINED")
    '("front-cover" "GST_TAG_IMAGE_TYPE_FRONT_COVER")
    '("back-cover" "GST_TAG_IMAGE_TYPE_BACK_COVER")
    '("leaflet-page" "GST_TAG_IMAGE_TYPE_LEAFLET_PAGE")
    '("medium" "GST_TAG_IMAGE_TYPE_MEDIUM")
    '("lead-artist" "GST_TAG_IMAGE_TYPE_LEAD_ARTIST")
    '("artist" "GST_TAG_IMAGE_TYPE_ARTIST")
    '("conductor" "GST_TAG_IMAGE_TYPE_CONDUCTOR")
    '("band-orchestra" "GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA")
    '("composer" "GST_TAG_IMAGE_TYPE_COMPOSER")
    '("lyricist" "GST_TAG_IMAGE_TYPE_LYRICIST")
    '("recording-location" "GST_TAG_IMAGE_TYPE_RECORDING_LOCATION")
    '("during-recording" "GST_TAG_IMAGE_TYPE_DURING_RECORDING")
    '("during-performance" "GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE")
    '("video-capture" "GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE")
    '("fish" "GST_TAG_IMAGE_TYPE_FISH")
    '("illustration" "GST_TAG_IMAGE_TYPE_ILLUSTRATION")
    '("band-artist-logo" "GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO")
    '("publisher-studio-logo" "GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO")
  )
)

(define-flags TagLicenseFlags
  (in-module "Gst")
  (c-name "GstTagLicenseFlags")
  (gtype-id "GST_TYPE_TAG_LICENSE_FLAGS")
  (values
    '("permits-reproduction" "GST_TAG_LICENSE_PERMITS_REPRODUCTION")
    '("permits-distribution" "GST_TAG_LICENSE_PERMITS_DISTRIBUTION")
    '("permits-derivative-works" "GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS")
    '("permits-sharing" "GST_TAG_LICENSE_PERMITS_SHARING")
    '("requires-notice" "GST_TAG_LICENSE_REQUIRES_NOTICE")
    '("requires-attribution" "GST_TAG_LICENSE_REQUIRES_ATTRIBUTION")
    '("requires-share-alike" "GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE")
    '("requires-source-code" "GST_TAG_LICENSE_REQUIRES_SOURCE_CODE")
    '("requires-copyleft" "GST_TAG_LICENSE_REQUIRES_COPYLEFT")
    '("requires-lesser-copyleft" "GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT")
    '("prohibits-commercial-use" "GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE")
    '("prohibits-high-income-nation-use" "GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE")
    '("creative-commons-license" "GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE")
    '("free-software-foundation-license" "GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE")
  )
)

(define-enum ColorBalanceType
  (in-module "Gst")
  (c-name "GstColorBalanceType")
  (gtype-id "GST_TYPE_COLOR_BALANCE_TYPE")
  (values
    '("hardware" "GST_COLOR_BALANCE_HARDWARE")
    '("software" "GST_COLOR_BALANCE_SOFTWARE")
  )
)

(define-enum VideoGLTextureType
  (in-module "Gst")
  (c-name "GstVideoGLTextureType")
  (gtype-id "GST_TYPE_VIDEO_GL_TEXTURE_TYPE")
  (values
    '("luminance" "GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE")
    '("luminance-alpha" "GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA")
    '("rgb16" "GST_VIDEO_GL_TEXTURE_TYPE_RGB16")
    '("rgb" "GST_VIDEO_GL_TEXTURE_TYPE_RGB")
    '("rgba" "GST_VIDEO_GL_TEXTURE_TYPE_RGBA")
    '("r" "GST_VIDEO_GL_TEXTURE_TYPE_R")
    '("rg" "GST_VIDEO_GL_TEXTURE_TYPE_RG")
  )
)

(define-enum VideoGLTextureOrientation
  (in-module "Gst")
  (c-name "GstVideoGLTextureOrientation")
  (gtype-id "GST_TYPE_VIDEO_GL_TEXTURE_ORIENTATION")
  (values
    '("normal-y-normal" "GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL")
    '("normal-y-flip" "GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_FLIP")
    '("flip-y-normal" "GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_NORMAL")
    '("flip-y-flip" "GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_FLIP")
  )
)

(define-flags VideoCodecFrameFlags
  (in-module "Gst")
  (c-name "GstVideoCodecFrameFlags")
  (gtype-id "GST_TYPE_VIDEO_CODEC_FRAME_FLAGS")
  (values
    '("decode-only" "GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY")
    '("sync-point" "GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT")
    '("force-keyframe" "GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME")
    '("force-keyframe-headers" "GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS")
  )
)

(define-enum NavigationCommand
  (in-module "Gst")
  (c-name "GstNavigationCommand")
  (gtype-id "GST_TYPE_NAVIGATION_COMMAND")
  (values
    '("invalid" "GST_NAVIGATION_COMMAND_INVALID")
    '("menu1" "GST_NAVIGATION_COMMAND_MENU1")
    '("menu2" "GST_NAVIGATION_COMMAND_MENU2")
    '("menu3" "GST_NAVIGATION_COMMAND_MENU3")
    '("menu4" "GST_NAVIGATION_COMMAND_MENU4")
    '("menu5" "GST_NAVIGATION_COMMAND_MENU5")
    '("menu6" "GST_NAVIGATION_COMMAND_MENU6")
    '("menu7" "GST_NAVIGATION_COMMAND_MENU7")
    '("left" "GST_NAVIGATION_COMMAND_LEFT")
    '("right" "GST_NAVIGATION_COMMAND_RIGHT")
    '("up" "GST_NAVIGATION_COMMAND_UP")
    '("down" "GST_NAVIGATION_COMMAND_DOWN")
    '("activate" "GST_NAVIGATION_COMMAND_ACTIVATE")
    '("prev-angle" "GST_NAVIGATION_COMMAND_PREV_ANGLE")
    '("next-angle" "GST_NAVIGATION_COMMAND_NEXT_ANGLE")
  )
)

(define-enum NavigationQueryType
  (in-module "Gst")
  (c-name "GstNavigationQueryType")
  (gtype-id "GST_TYPE_NAVIGATION_QUERY_TYPE")
  (values
    '("invalid" "GST_NAVIGATION_QUERY_INVALID")
    '("commands" "GST_NAVIGATION_QUERY_COMMANDS")
    '("angles" "GST_NAVIGATION_QUERY_ANGLES")
  )
)

(define-enum NavigationMessageType
  (in-module "Gst")
  (c-name "GstNavigationMessageType")
  (gtype-id "GST_TYPE_NAVIGATION_MESSAGE_TYPE")
  (values
    '("invalid" "GST_NAVIGATION_MESSAGE_INVALID")
    '("mouse-over" "GST_NAVIGATION_MESSAGE_MOUSE_OVER")
    '("commands-changed" "GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED")
    '("angles-changed" "GST_NAVIGATION_MESSAGE_ANGLES_CHANGED")
    '("event" "GST_NAVIGATION_MESSAGE_EVENT")
  )
)

(define-enum NavigationEventType
  (in-module "Gst")
  (c-name "GstNavigationEventType")
  (gtype-id "GST_TYPE_NAVIGATION_EVENT_TYPE")
  (values
    '("invalid" "GST_NAVIGATION_EVENT_INVALID")
    '("key-press" "GST_NAVIGATION_EVENT_KEY_PRESS")
    '("key-release" "GST_NAVIGATION_EVENT_KEY_RELEASE")
    '("mouse-button-press" "GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS")
    '("mouse-button-release" "GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE")
    '("mouse-move" "GST_NAVIGATION_EVENT_MOUSE_MOVE")
    '("command" "GST_NAVIGATION_EVENT_COMMAND")
  )
)

(define-flags VideoChromaSite
  (in-module "Gst")
  (c-name "GstVideoChromaSite")
  (gtype-id "GST_TYPE_VIDEO_CHROMA_SITE")
  (values
    '("unknown" "GST_VIDEO_CHROMA_SITE_UNKNOWN")
    '("none" "GST_VIDEO_CHROMA_SITE_NONE")
    '("h-cosited" "GST_VIDEO_CHROMA_SITE_H_COSITED")
    '("v-cosited" "GST_VIDEO_CHROMA_SITE_V_COSITED")
    '("alt-line" "GST_VIDEO_CHROMA_SITE_ALT_LINE")
    '("cosited" "GST_VIDEO_CHROMA_SITE_COSITED")
    '("jpeg" "GST_VIDEO_CHROMA_SITE_JPEG")
    '("mpeg2" "GST_VIDEO_CHROMA_SITE_MPEG2")
    '("dv" "GST_VIDEO_CHROMA_SITE_DV")
  )
)

(define-enum VideoChromaMethod
  (in-module "Gst")
  (c-name "GstVideoChromaMethod")
  (gtype-id "GST_TYPE_VIDEO_CHROMA_METHOD")
  (values
    '("nearest" "GST_VIDEO_CHROMA_METHOD_NEAREST")
    '("linear" "GST_VIDEO_CHROMA_METHOD_LINEAR")
  )
)

(define-flags VideoChromaFlags
  (in-module "Gst")
  (c-name "GstVideoChromaFlags")
  (gtype-id "GST_TYPE_VIDEO_CHROMA_FLAGS")
  (values
    '("none" "GST_VIDEO_CHROMA_FLAG_NONE")
    '("interlaced" "GST_VIDEO_CHROMA_FLAG_INTERLACED")
  )
)

(define-enum VideoColorRange
  (in-module "Gst")
  (c-name "GstVideoColorRange")
  (gtype-id "GST_TYPE_VIDEO_COLOR_RANGE")
  (values
    '("unknown" "GST_VIDEO_COLOR_RANGE_UNKNOWN")
    '("0-255" "GST_VIDEO_COLOR_RANGE_0_255")
    '("16-235" "GST_VIDEO_COLOR_RANGE_16_235")
  )
)

(define-enum VideoColorMatrix
  (in-module "Gst")
  (c-name "GstVideoColorMatrix")
  (gtype-id "GST_TYPE_VIDEO_COLOR_MATRIX")
  (values
    '("unknown" "GST_VIDEO_COLOR_MATRIX_UNKNOWN")
    '("rgb" "GST_VIDEO_COLOR_MATRIX_RGB")
    '("fcc" "GST_VIDEO_COLOR_MATRIX_FCC")
    '("bt709" "GST_VIDEO_COLOR_MATRIX_BT709")
    '("bt601" "GST_VIDEO_COLOR_MATRIX_BT601")
    '("smpte240m" "GST_VIDEO_COLOR_MATRIX_SMPTE240M")
    '("bt2020" "GST_VIDEO_COLOR_MATRIX_BT2020")
  )
)

(define-enum VideoTransferFunction
  (in-module "Gst")
  (c-name "GstVideoTransferFunction")
  (gtype-id "GST_TYPE_VIDEO_TRANSFER_FUNCTION")
  (values
    '("unknown" "GST_VIDEO_TRANSFER_UNKNOWN")
    '("gamma10" "GST_VIDEO_TRANSFER_GAMMA10")
    '("gamma18" "GST_VIDEO_TRANSFER_GAMMA18")
    '("gamma20" "GST_VIDEO_TRANSFER_GAMMA20")
    '("gamma22" "GST_VIDEO_TRANSFER_GAMMA22")
    '("bt709" "GST_VIDEO_TRANSFER_BT709")
    '("smpte240m" "GST_VIDEO_TRANSFER_SMPTE240M")
    '("srgb" "GST_VIDEO_TRANSFER_SRGB")
    '("gamma28" "GST_VIDEO_TRANSFER_GAMMA28")
    '("log100" "GST_VIDEO_TRANSFER_LOG100")
    '("log316" "GST_VIDEO_TRANSFER_LOG316")
    '("bt2020-12" "GST_VIDEO_TRANSFER_BT2020_12")
    '("adobergb" "GST_VIDEO_TRANSFER_ADOBERGB")
  )
)

(define-enum VideoColorPrimaries
  (in-module "Gst")
  (c-name "GstVideoColorPrimaries")
  (gtype-id "GST_TYPE_VIDEO_COLOR_PRIMARIES")
  (values
    '("unknown" "GST_VIDEO_COLOR_PRIMARIES_UNKNOWN")
    '("bt709" "GST_VIDEO_COLOR_PRIMARIES_BT709")
    '("bt470m" "GST_VIDEO_COLOR_PRIMARIES_BT470M")
    '("bt470bg" "GST_VIDEO_COLOR_PRIMARIES_BT470BG")
    '("smpte170m" "GST_VIDEO_COLOR_PRIMARIES_SMPTE170M")
    '("smpte240m" "GST_VIDEO_COLOR_PRIMARIES_SMPTE240M")
    '("film" "GST_VIDEO_COLOR_PRIMARIES_FILM")
    '("bt2020" "GST_VIDEO_COLOR_PRIMARIES_BT2020")
    '("adobergb" "GST_VIDEO_COLOR_PRIMARIES_ADOBERGB")
  )
)

(define-enum VideoAlphaMode
  (in-module "Gst")
  (c-name "GstVideoAlphaMode")
  (gtype-id "GST_TYPE_VIDEO_ALPHA_MODE")
  (values
    '("copy" "GST_VIDEO_ALPHA_MODE_COPY")
    '("set" "GST_VIDEO_ALPHA_MODE_SET")
    '("mult" "GST_VIDEO_ALPHA_MODE_MULT")
  )
)

(define-enum VideoChromaMode
  (in-module "Gst")
  (c-name "GstVideoChromaMode")
  (gtype-id "GST_TYPE_VIDEO_CHROMA_MODE")
  (values
    '("full" "GST_VIDEO_CHROMA_MODE_FULL")
    '("upsample-only" "GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY")
    '("downsample-only" "GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY")
    '("none" "GST_VIDEO_CHROMA_MODE_NONE")
  )
)

(define-enum VideoMatrixMode
  (in-module "Gst")
  (c-name "GstVideoMatrixMode")
  (gtype-id "GST_TYPE_VIDEO_MATRIX_MODE")
  (values
    '("full" "GST_VIDEO_MATRIX_MODE_FULL")
    '("input-only" "GST_VIDEO_MATRIX_MODE_INPUT_ONLY")
    '("output-only" "GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY")
    '("none" "GST_VIDEO_MATRIX_MODE_NONE")
  )
)

(define-enum VideoGammaMode
  (in-module "Gst")
  (c-name "GstVideoGammaMode")
  (gtype-id "GST_TYPE_VIDEO_GAMMA_MODE")
  (values
    '("none" "GST_VIDEO_GAMMA_MODE_NONE")
    '("remap" "GST_VIDEO_GAMMA_MODE_REMAP")
  )
)

(define-enum VideoPrimariesMode
  (in-module "Gst")
  (c-name "GstVideoPrimariesMode")
  (gtype-id "GST_TYPE_VIDEO_PRIMARIES_MODE")
  (values
    '("none" "GST_VIDEO_PRIMARIES_MODE_NONE")
    '("merge-only" "GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY")
    '("fast" "GST_VIDEO_PRIMARIES_MODE_FAST")
  )
)

(define-enum VideoDitherMethod
  (in-module "Gst")
  (c-name "GstVideoDitherMethod")
  (gtype-id "GST_TYPE_VIDEO_DITHER_METHOD")
  (values
    '("none" "GST_VIDEO_DITHER_NONE")
    '("verterr" "GST_VIDEO_DITHER_VERTERR")
    '("floyd-steinberg" "GST_VIDEO_DITHER_FLOYD_STEINBERG")
    '("sierra-lite" "GST_VIDEO_DITHER_SIERRA_LITE")
    '("bayer" "GST_VIDEO_DITHER_BAYER")
  )
)

(define-flags VideoDitherFlags
  (in-module "Gst")
  (c-name "GstVideoDitherFlags")
  (gtype-id "GST_TYPE_VIDEO_DITHER_FLAGS")
  (values
    '("none" "GST_VIDEO_DITHER_FLAG_NONE")
    '("interlaced" "GST_VIDEO_DITHER_FLAG_INTERLACED")
    '("quantize" "GST_VIDEO_DITHER_FLAG_QUANTIZE")
  )
)

(define-enum VideoFormat
  (in-module "Gst")
  (c-name "GstVideoFormat")
  (gtype-id "GST_TYPE_VIDEO_FORMAT")
  (values
    '("unknown" "GST_VIDEO_FORMAT_UNKNOWN")
    '("encoded" "GST_VIDEO_FORMAT_ENCODED")
    '("i420" "GST_VIDEO_FORMAT_I420")
    '("yv12" "GST_VIDEO_FORMAT_YV12")
    '("yuy2" "GST_VIDEO_FORMAT_YUY2")
    '("uyvy" "GST_VIDEO_FORMAT_UYVY")
    '("ayuv" "GST_VIDEO_FORMAT_AYUV")
    '("rgbx" "GST_VIDEO_FORMAT_RGBx")
    '("bgrx" "GST_VIDEO_FORMAT_BGRx")
    '("xrgb" "GST_VIDEO_FORMAT_xRGB")
    '("xbgr" "GST_VIDEO_FORMAT_xBGR")
    '("rgba" "GST_VIDEO_FORMAT_RGBA")
    '("bgra" "GST_VIDEO_FORMAT_BGRA")
    '("argb" "GST_VIDEO_FORMAT_ARGB")
    '("abgr" "GST_VIDEO_FORMAT_ABGR")
    '("rgb" "GST_VIDEO_FORMAT_RGB")
    '("bgr" "GST_VIDEO_FORMAT_BGR")
    '("y41b" "GST_VIDEO_FORMAT_Y41B")
    '("y42b" "GST_VIDEO_FORMAT_Y42B")
    '("yvyu" "GST_VIDEO_FORMAT_YVYU")
    '("y444" "GST_VIDEO_FORMAT_Y444")
    '("v210" "GST_VIDEO_FORMAT_v210")
    '("v216" "GST_VIDEO_FORMAT_v216")
    '("nv12" "GST_VIDEO_FORMAT_NV12")
    '("nv21" "GST_VIDEO_FORMAT_NV21")
    '("gray8" "GST_VIDEO_FORMAT_GRAY8")
    '("gray16-be" "GST_VIDEO_FORMAT_GRAY16_BE")
    '("gray16-le" "GST_VIDEO_FORMAT_GRAY16_LE")
    '("v308" "GST_VIDEO_FORMAT_v308")
    '("rgb16" "GST_VIDEO_FORMAT_RGB16")
    '("bgr16" "GST_VIDEO_FORMAT_BGR16")
    '("rgb15" "GST_VIDEO_FORMAT_RGB15")
    '("bgr15" "GST_VIDEO_FORMAT_BGR15")
    '("uyvp" "GST_VIDEO_FORMAT_UYVP")
    '("a420" "GST_VIDEO_FORMAT_A420")
    '("rgb8p" "GST_VIDEO_FORMAT_RGB8P")
    '("yuv9" "GST_VIDEO_FORMAT_YUV9")
    '("yvu9" "GST_VIDEO_FORMAT_YVU9")
    '("iyu1" "GST_VIDEO_FORMAT_IYU1")
    '("argb64" "GST_VIDEO_FORMAT_ARGB64")
    '("ayuv64" "GST_VIDEO_FORMAT_AYUV64")
    '("r210" "GST_VIDEO_FORMAT_r210")
    '("i420-10be" "GST_VIDEO_FORMAT_I420_10BE")
    '("i420-10le" "GST_VIDEO_FORMAT_I420_10LE")
    '("i422-10be" "GST_VIDEO_FORMAT_I422_10BE")
    '("i422-10le" "GST_VIDEO_FORMAT_I422_10LE")
    '("y444-10be" "GST_VIDEO_FORMAT_Y444_10BE")
    '("y444-10le" "GST_VIDEO_FORMAT_Y444_10LE")
    '("gbr" "GST_VIDEO_FORMAT_GBR")
    '("gbr-10be" "GST_VIDEO_FORMAT_GBR_10BE")
    '("gbr-10le" "GST_VIDEO_FORMAT_GBR_10LE")
    '("nv16" "GST_VIDEO_FORMAT_NV16")
    '("nv24" "GST_VIDEO_FORMAT_NV24")
    '("nv12-64z32" "GST_VIDEO_FORMAT_NV12_64Z32")
    '("a420-10be" "GST_VIDEO_FORMAT_A420_10BE")
    '("a420-10le" "GST_VIDEO_FORMAT_A420_10LE")
    '("a422-10be" "GST_VIDEO_FORMAT_A422_10BE")
    '("a422-10le" "GST_VIDEO_FORMAT_A422_10LE")
    '("a444-10be" "GST_VIDEO_FORMAT_A444_10BE")
    '("a444-10le" "GST_VIDEO_FORMAT_A444_10LE")
    '("nv61" "GST_VIDEO_FORMAT_NV61")
  )
)

(define-flags VideoFormatFlags
  (in-module "Gst")
  (c-name "GstVideoFormatFlags")
  (gtype-id "GST_TYPE_VIDEO_FORMAT_FLAGS")
  (values
    '("yuv" "GST_VIDEO_FORMAT_FLAG_YUV")
    '("rgb" "GST_VIDEO_FORMAT_FLAG_RGB")
    '("gray" "GST_VIDEO_FORMAT_FLAG_GRAY")
    '("alpha" "GST_VIDEO_FORMAT_FLAG_ALPHA")
    '("le" "GST_VIDEO_FORMAT_FLAG_LE")
    '("palette" "GST_VIDEO_FORMAT_FLAG_PALETTE")
    '("complex" "GST_VIDEO_FORMAT_FLAG_COMPLEX")
    '("unpack" "GST_VIDEO_FORMAT_FLAG_UNPACK")
    '("tiled" "GST_VIDEO_FORMAT_FLAG_TILED")
  )
)

(define-flags VideoPackFlags
  (in-module "Gst")
  (c-name "GstVideoPackFlags")
  (gtype-id "GST_TYPE_VIDEO_PACK_FLAGS")
  (values
    '("none" "GST_VIDEO_PACK_FLAG_NONE")
    '("truncate-range" "GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE")
    '("interlaced" "GST_VIDEO_PACK_FLAG_INTERLACED")
  )
)

(define-flags VideoFrameFlags
  (in-module "Gst")
  (c-name "GstVideoFrameFlags")
  (gtype-id "GST_TYPE_VIDEO_FRAME_FLAGS")
  (values
    '("none" "GST_VIDEO_FRAME_FLAG_NONE")
    '("interlaced" "GST_VIDEO_FRAME_FLAG_INTERLACED")
    '("tff" "GST_VIDEO_FRAME_FLAG_TFF")
    '("rff" "GST_VIDEO_FRAME_FLAG_RFF")
    '("onefield" "GST_VIDEO_FRAME_FLAG_ONEFIELD")
    '("multiple-view" "GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW")
    '("first-in-bundle" "GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE")
  )
)

(define-flags VideoBufferFlags
  (in-module "Gst")
  (c-name "GstVideoBufferFlags")
  (gtype-id "GST_TYPE_VIDEO_BUFFER_FLAGS")
  (values
    '("interlaced" "GST_VIDEO_BUFFER_FLAG_INTERLACED")
    '("tff" "GST_VIDEO_BUFFER_FLAG_TFF")
    '("rff" "GST_VIDEO_BUFFER_FLAG_RFF")
    '("onefield" "GST_VIDEO_BUFFER_FLAG_ONEFIELD")
    '("multiple-view" "GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW")
    '("first-in-bundle" "GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE")
    '("last" "GST_VIDEO_BUFFER_FLAG_LAST")
  )
)

(define-flags VideoFrameMapFlags
  (in-module "Gst")
  (c-name "GstVideoFrameMapFlags")
  (gtype-id "GST_TYPE_VIDEO_FRAME_MAP_FLAGS")
  (values
    '("no-ref" "GST_VIDEO_FRAME_MAP_FLAG_NO_REF")
    '("last" "GST_VIDEO_FRAME_MAP_FLAG_LAST")
  )
)

(define-enum VideoInterlaceMode
  (in-module "Gst")
  (c-name "GstVideoInterlaceMode")
  (gtype-id "GST_TYPE_VIDEO_INTERLACE_MODE")
  (values
    '("progressive" "GST_VIDEO_INTERLACE_MODE_PROGRESSIVE")
    '("interleaved" "GST_VIDEO_INTERLACE_MODE_INTERLEAVED")
    '("mixed" "GST_VIDEO_INTERLACE_MODE_MIXED")
    '("fields" "GST_VIDEO_INTERLACE_MODE_FIELDS")
  )
)

(define-enum VideoMultiviewMode
  (in-module "Gst")
  (c-name "GstVideoMultiviewMode")
  (gtype-id "GST_TYPE_VIDEO_MULTIVIEW_MODE")
  (values
    '("none" "GST_VIDEO_MULTIVIEW_MODE_NONE")
    '("mono" "GST_VIDEO_MULTIVIEW_MODE_MONO")
    '("left" "GST_VIDEO_MULTIVIEW_MODE_LEFT")
    '("right" "GST_VIDEO_MULTIVIEW_MODE_RIGHT")
    '("side-by-side" "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE")
    '("side-by-side-quincunx" "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX")
    '("column-interleaved" "GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED")
    '("row-interleaved" "GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED")
    '("top-bottom" "GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM")
    '("checkerboard" "GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD")
    '("frame-by-frame" "GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME")
    '("multiview-frame-by-frame" "GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME")
    '("separated" "GST_VIDEO_MULTIVIEW_MODE_SEPARATED")
  )
)

(define-enum VideoMultiviewFramePacking
  (in-module "Gst")
  (c-name "GstVideoMultiviewFramePacking")
  (gtype-id "GST_TYPE_VIDEO_MULTIVIEW_FRAME_PACKING")
  (values
    '("none" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE")
    '("mono" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO")
    '("left" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT")
    '("right" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT")
    '("side-by-side" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE")
    '("side-by-side-quincunx" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX")
    '("column-interleaved" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED")
    '("row-interleaved" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED")
    '("top-bottom" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM")
    '("checkerboard" "GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD")
  )
)

(define-flags VideoMultiviewFlags
  (in-module "Gst")
  (c-name "GstVideoMultiviewFlags")
  (gtype-id "GST_TYPE_VIDEO_MULTIVIEW_FLAGS")
  (values
    '("none" "GST_VIDEO_MULTIVIEW_FLAGS_NONE")
    '("right-view-first" "GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST")
    '("left-flipped" "GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED")
    '("left-flopped" "GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED")
    '("right-flipped" "GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED")
    '("right-flopped" "GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED")
    '("half-aspect" "GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT")
    '("mixed-mono" "GST_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO")
  )
)

(define-flags VideoFlags
  (in-module "Gst")
  (c-name "GstVideoFlags")
  (gtype-id "GST_TYPE_VIDEO_FLAGS")
  (values
    '("none" "GST_VIDEO_FLAG_NONE")
    '("variable-fps" "GST_VIDEO_FLAG_VARIABLE_FPS")
    '("premultiplied-alpha" "GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA")
  )
)

(define-enum VideoMultiviewViewLabel
  (in-module "Gst")
  (c-name "GstVideoMultiviewViewLabel")
  (gtype-id "GST_TYPE_VIDEO_MULTIVIEW_VIEW_LABEL")
  (values
    '("unknown" "GST_VIDEO_MULTIVIEW_VIEW_UNKNOWN")
    '("mono" "GST_VIDEO_MULTIVIEW_VIEW_MONO")
    '("left" "GST_VIDEO_MULTIVIEW_VIEW_LEFT")
    '("right" "GST_VIDEO_MULTIVIEW_VIEW_RIGHT")
  )
)

(define-enum VideoOverlayFormatFlags
  (in-module "Gst")
  (c-name "GstVideoOverlayFormatFlags")
  (gtype-id "GST_TYPE_VIDEO_OVERLAY_FORMAT_FLAGS")
  (values
    '("none" "GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE")
    '("premultiplied-alpha" "GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA")
    '("global-alpha" "GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA")
  )
)

(define-enum VideoResamplerMethod
  (in-module "Gst")
  (c-name "GstVideoResamplerMethod")
  (gtype-id "GST_TYPE_VIDEO_RESAMPLER_METHOD")
  (values
    '("nearest" "GST_VIDEO_RESAMPLER_METHOD_NEAREST")
    '("linear" "GST_VIDEO_RESAMPLER_METHOD_LINEAR")
    '("cubic" "GST_VIDEO_RESAMPLER_METHOD_CUBIC")
    '("sinc" "GST_VIDEO_RESAMPLER_METHOD_SINC")
    '("lanczos" "GST_VIDEO_RESAMPLER_METHOD_LANCZOS")
  )
)

(define-enum VideoResamplerFlags
  (in-module "Gst")
  (c-name "GstVideoResamplerFlags")
  (gtype-id "GST_TYPE_VIDEO_RESAMPLER_FLAGS")
  (values
    '("none" "GST_VIDEO_RESAMPLER_FLAG_NONE")
  )
)

(define-flags VideoScalerFlags
  (in-module "Gst")
  (c-name "GstVideoScalerFlags")
  (gtype-id "GST_TYPE_VIDEO_SCALER_FLAGS")
  (values
    '("none" "GST_VIDEO_SCALER_FLAG_NONE")
    '("interlaced" "GST_VIDEO_SCALER_FLAG_INTERLACED")
  )
)

(define-enum VideoTileType
  (in-module "Gst")
  (c-name "GstVideoTileType")
  (gtype-id "GST_TYPE_VIDEO_TILE_TYPE")
  (values
    '("indexed" "GST_VIDEO_TILE_TYPE_INDEXED")
  )
)

(define-enum VideoTileMode
  (in-module "Gst")
  (c-name "GstVideoTileMode")
  (gtype-id "GST_TYPE_VIDEO_TILE_MODE")
  (values
    '("gst-video-tile-mode-unknown" "GST_VIDEO_TILE_MODE_UNKNOWN")
    '("gst-video-tile-mode-zflipz-2x2" "GST_VIDEO_TILE_MODE_ZFLIPZ_2X2")
    '("indexed)" "INDEXED)")
  )
)


;; From allocators.h



;; From gstdmabuf.h

(define-function gst_dmabuf_allocator_new
  (c-name "gst_dmabuf_allocator_new")
  (is-constructor-of "GstDmabufAllocator")
  (return-type "GstAllocator*")
)

(define-function gst_dmabuf_allocator_alloc
  (c-name "gst_dmabuf_allocator_alloc")
  (return-type "GstMemory*")
  (parameters
    '("GstAllocator*" "allocator")
    '("gint" "fd")
    '("gsize" "size")
  )
)

(define-function gst_dmabuf_memory_get_fd
  (c-name "gst_dmabuf_memory_get_fd")
  (return-type "gint")
  (parameters
    '("GstMemory*" "mem")
  )
)

(define-function gst_is_dmabuf_memory
  (c-name "gst_is_dmabuf_memory")
  (return-type "gboolean")
  (parameters
    '("GstMemory*" "mem")
  )
)



;; From gstfdmemory.h

(define-function gst_fd_allocator_get_type
  (c-name "gst_fd_allocator_get_type")
  (return-type "GType")
)

(define-function gst_fd_allocator_new
  (c-name "gst_fd_allocator_new")
  (is-constructor-of "GstFdAllocator")
  (return-type "GstAllocator*")
)

(define-function gst_fd_allocator_alloc
  (c-name "gst_fd_allocator_alloc")
  (return-type "GstMemory*")
  (parameters
    '("GstAllocator*" "allocator")
    '("gint" "fd")
    '("gsize" "size")
    '("GstFdMemoryFlags" "flags")
  )
)

(define-function gst_is_fd_memory
  (c-name "gst_is_fd_memory")
  (return-type "gboolean")
  (parameters
    '("GstMemory*" "mem")
  )
)

(define-function gst_fd_memory_get_fd
  (c-name "gst_fd_memory_get_fd")
  (return-type "gint")
  (parameters
    '("GstMemory*" "mem")
  )
)



;; From app.h



;; From gstapp-marshal.h



;; From gstappsink.h

(define-function gst_app_sink_get_type
  (c-name "gst_app_sink_get_type")
  (return-type "GType")
)

(define-method set_caps
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_caps")
  (return-type "none")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method get_caps
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_caps")
  (return-type "GstCaps*")
)

(define-method is_eos
  (of-object "GstAppSink")
  (c-name "gst_app_sink_is_eos")
  (return-type "gboolean")
)

(define-method set_emit_signals
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_emit_signals")
  (return-type "none")
  (parameters
    '("gboolean" "emit")
  )
)

(define-method get_emit_signals
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_emit_signals")
  (return-type "gboolean")
)

(define-method set_max_buffers
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_max_buffers")
  (return-type "none")
  (parameters
    '("guint" "max")
  )
)

(define-method get_max_buffers
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_max_buffers")
  (return-type "guint")
)

(define-method set_drop
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_drop")
  (return-type "none")
  (parameters
    '("gboolean" "drop")
  )
)

(define-method get_drop
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_drop")
  (return-type "gboolean")
)

(define-method set_wait_on_eos
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_wait_on_eos")
  (return-type "none")
  (parameters
    '("gboolean" "wait")
  )
)

(define-method get_wait_on_eos
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_wait_on_eos")
  (return-type "gboolean")
)

(define-method pull_preroll
  (of-object "GstAppSink")
  (c-name "gst_app_sink_pull_preroll")
  (return-type "GstSample*")
)

(define-method pull_sample
  (of-object "GstAppSink")
  (c-name "gst_app_sink_pull_sample")
  (return-type "GstSample*")
)

(define-method set_callbacks
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_callbacks")
  (return-type "none")
  (parameters
    '("GstAppSinkCallbacks*" "callbacks")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)



;; From gstappsrc.h

(define-function gst_app_src_get_type
  (c-name "gst_app_src_get_type")
  (return-type "GType")
)

(define-function gst_app_stream_type_get_type
  (c-name "gst_app_stream_type_get_type")
  (return-type "GType")
)

(define-method set_caps
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_caps")
  (return-type "none")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method get_caps
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_caps")
  (return-type "GstCaps*")
)

(define-method set_size
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_size")
  (return-type "none")
  (parameters
    '("gint64" "size")
  )
)

(define-method get_size
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_size")
  (return-type "gint64")
)

(define-method set_stream_type
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_stream_type")
  (return-type "none")
  (parameters
    '("GstAppStreamType" "type")
  )
)

(define-method get_stream_type
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_stream_type")
  (return-type "GstAppStreamType")
)

(define-method set_max_bytes
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_max_bytes")
  (return-type "none")
  (parameters
    '("guint64" "max")
  )
)

(define-method get_max_bytes
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_max_bytes")
  (return-type "guint64")
)

(define-method get_current_level_bytes
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_current_level_bytes")
  (return-type "guint64")
)

(define-method set_latency
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_latency")
  (return-type "none")
  (parameters
    '("guint64" "min")
    '("guint64" "max")
  )
)

(define-method get_latency
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_latency")
  (return-type "none")
  (parameters
    '("guint64*" "min")
    '("guint64*" "max")
  )
)

(define-method set_emit_signals
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_emit_signals")
  (return-type "none")
  (parameters
    '("gboolean" "emit")
  )
)

(define-method get_emit_signals
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_emit_signals")
  (return-type "gboolean")
)

(define-method push_buffer
  (of-object "GstAppSrc")
  (c-name "gst_app_src_push_buffer")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method end_of_stream
  (of-object "GstAppSrc")
  (c-name "gst_app_src_end_of_stream")
  (return-type "GstFlowReturn")
)

(define-method push_sample
  (of-object "GstAppSrc")
  (c-name "gst_app_src_push_sample")
  (return-type "GstFlowReturn")
  (parameters
    '("GstSample*" "sample")
  )
)

(define-method set_callbacks
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_callbacks")
  (return-type "none")
  (parameters
    '("GstAppSrcCallbacks*" "callbacks")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)



;; From audio-channel-mixer.h

(define-function gst_audio_channel_mixer_new
  (c-name "gst_audio_channel_mixer_new")
  (is-constructor-of "GstAudioChannelMixer")
  (return-type "GstAudioChannelMixer*")
  (parameters
    '("GstAudioChannelMixerFlags" "flags")
    '("GstAudioFormat" "format")
    '("gint" "in_channels")
    '("GstAudioChannelPosition*" "in_position")
    '("gint" "out_channels")
    '("GstAudioChannelPosition*" "out_position")
  )
)

(define-method free
  (of-object "GstAudioChannelMixer")
  (c-name "gst_audio_channel_mixer_free")
  (return-type "none")
)

(define-method is_passthrough
  (of-object "GstAudioChannelMixer")
  (c-name "gst_audio_channel_mixer_is_passthrough")
  (return-type "gboolean")
)

(define-method samples
  (of-object "GstAudioChannelMixer")
  (c-name "gst_audio_channel_mixer_samples")
  (return-type "none")
  (parameters
    '("const-gpointer[]" "in")
    '("gpointer[]" "out")
    '("gint" "samples")
  )
)



;; From audio-channels.h

(define-function gst_audio_buffer_reorder_channels
  (c-name "gst_audio_buffer_reorder_channels")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstAudioFormat" "format")
    '("gint" "channels")
    '("const-GstAudioChannelPosition*" "from")
    '("const-GstAudioChannelPosition*" "to")
  )
)

(define-function gst_audio_reorder_channels
  (c-name "gst_audio_reorder_channels")
  (return-type "gboolean")
  (parameters
    '("gpointer" "data")
    '("gsize" "size")
    '("GstAudioFormat" "format")
    '("gint" "channels")
    '("const-GstAudioChannelPosition*" "from")
    '("const-GstAudioChannelPosition*" "to")
  )
)

(define-method s_to_valid_order
  (of-object "GstAudioChannelPosition")
  (c-name "gst_audio_channel_positions_to_valid_order")
  (return-type "gboolean")
  (parameters
    '("gint" "channels")
  )
)

(define-function gst_audio_check_valid_channel_positions
  (c-name "gst_audio_check_valid_channel_positions")
  (return-type "gboolean")
  (parameters
    '("const-GstAudioChannelPosition*" "position")
    '("gint" "channels")
    '("gboolean" "force_order")
  )
)

(define-method s_to_mask
  (of-object "GstAudioChannelPosition")
  (c-name "gst_audio_channel_positions_to_mask")
  (return-type "gboolean")
  (parameters
    '("gint" "channels")
    '("gboolean" "force_order")
    '("guint64*" "channel_mask")
  )
)

(define-function gst_audio_channel_positions_from_mask
  (c-name "gst_audio_channel_positions_from_mask")
  (return-type "gboolean")
  (parameters
    '("gint" "channels")
    '("guint64" "channel_mask")
    '("GstAudioChannelPosition*" "position")
  )
)

(define-function gst_audio_get_channel_reorder_map
  (c-name "gst_audio_get_channel_reorder_map")
  (return-type "gboolean")
  (parameters
    '("gint" "channels")
    '("const-GstAudioChannelPosition*" "from")
    '("const-GstAudioChannelPosition*" "to")
    '("gint*" "reorder_map")
  )
)

(define-function gst_audio_channel_get_fallback_mask
  (c-name "gst_audio_channel_get_fallback_mask")
  (return-type "guint64")
  (parameters
    '("gint" "channels")
  )
)



;; From audio-converter.h

(define-function gst_audio_converter_new
  (c-name "gst_audio_converter_new")
  (is-constructor-of "GstAudioConverter")
  (return-type "GstAudioConverter*")
  (parameters
    '("GstAudioConverterFlags" "flags")
    '("GstAudioInfo*" "in_info")
    '("GstAudioInfo*" "out_info")
    '("GstStructure*" "config")
  )
)

(define-method free
  (of-object "GstAudioConverter")
  (c-name "gst_audio_converter_free")
  (return-type "none")
)

(define-method reset
  (of-object "GstAudioConverter")
  (c-name "gst_audio_converter_reset")
  (return-type "none")
)

(define-method update_config
  (of-object "GstAudioConverter")
  (c-name "gst_audio_converter_update_config")
  (return-type "gboolean")
  (parameters
    '("gint" "in_rate")
    '("gint" "out_rate")
    '("GstStructure*" "config")
  )
)

(define-method get_config
  (of-object "GstAudioConverter")
  (c-name "gst_audio_converter_get_config")
  (return-type "const-GstStructure*")
  (parameters
    '("gint*" "in_rate")
    '("gint*" "out_rate")
  )
)

(define-method get_out_frames
  (of-object "GstAudioConverter")
  (c-name "gst_audio_converter_get_out_frames")
  (return-type "gsize")
  (parameters
    '("gsize" "in_frames")
  )
)

(define-method get_in_frames
  (of-object "GstAudioConverter")
  (c-name "gst_audio_converter_get_in_frames")
  (return-type "gsize")
  (parameters
    '("gsize" "out_frames")
  )
)

(define-method get_max_latency
  (of-object "GstAudioConverter")
  (c-name "gst_audio_converter_get_max_latency")
  (return-type "gsize")
)

(define-method samples
  (of-object "GstAudioConverter")
  (c-name "gst_audio_converter_samples")
  (return-type "gboolean")
  (parameters
    '("GstAudioConverterFlags" "flags")
    '("gpointer[]" "in")
    '("gsize" "in_frames")
    '("gpointer[]" "out")
    '("gsize" "out_frames")
  )
)



;; From audio-enumtypes.h

(define-function gst_audio_format_get_type
  (c-name "gst_audio_format_get_type")
  (return-type "GType")
)

(define-function gst_audio_format_flags_get_type
  (c-name "gst_audio_format_flags_get_type")
  (return-type "GType")
)

(define-function gst_audio_pack_flags_get_type
  (c-name "gst_audio_pack_flags_get_type")
  (return-type "GType")
)

(define-function gst_audio_channel_position_get_type
  (c-name "gst_audio_channel_position_get_type")
  (return-type "GType")
)

(define-function gst_audio_channel_mixer_flags_get_type
  (c-name "gst_audio_channel_mixer_flags_get_type")
  (return-type "GType")
)

(define-function gst_audio_converter_flags_get_type
  (c-name "gst_audio_converter_flags_get_type")
  (return-type "GType")
)

(define-function gst_audio_flags_get_type
  (c-name "gst_audio_flags_get_type")
  (return-type "GType")
)

(define-function gst_audio_layout_get_type
  (c-name "gst_audio_layout_get_type")
  (return-type "GType")
)

(define-function gst_audio_dither_method_get_type
  (c-name "gst_audio_dither_method_get_type")
  (return-type "GType")
)

(define-function gst_audio_noise_shaping_method_get_type
  (c-name "gst_audio_noise_shaping_method_get_type")
  (return-type "GType")
)

(define-function gst_audio_quantize_flags_get_type
  (c-name "gst_audio_quantize_flags_get_type")
  (return-type "GType")
)

(define-function gst_audio_ring_buffer_state_get_type
  (c-name "gst_audio_ring_buffer_state_get_type")
  (return-type "GType")
)

(define-function gst_audio_ring_buffer_format_type_get_type
  (c-name "gst_audio_ring_buffer_format_type_get_type")
  (return-type "GType")
)



;; From audio-format.h

(define-function gst_audio_format_info_get_type
  (c-name "gst_audio_format_info_get_type")
  (return-type "GType")
)

(define-function gst_audio_format_build_integer
  (c-name "gst_audio_format_build_integer")
  (return-type "GstAudioFormat")
  (parameters
    '("gboolean" "sign")
    '("gint" "endianness")
    '("gint" "width")
    '("gint" "depth")
  )
)

(define-function gst_audio_format_from_string
  (c-name "gst_audio_format_from_string")
  (return-type "GstAudioFormat")
  (parameters
    '("const-gchar*" "format")
  )
)

(define-method to_string
  (of-object "GstAudioFormat")
  (c-name "gst_audio_format_to_string")
  (return-type "const-gchar*")
)

(define-method get_info
  (of-object "GstAudioFormat")
  (c-name "gst_audio_format_get_info")
  (return-type "const-GstAudioFormatInfo*")
)

(define-function gst_audio_format_fill_silence
  (c-name "gst_audio_format_fill_silence")
  (return-type "none")
  (parameters
    '("const-GstAudioFormatInfo*" "info")
    '("gpointer" "dest")
    '("gsize" "length")
  )
)



;; From audio.h

(define-function gst_audio_buffer_clip
  (c-name "gst_audio_buffer_clip")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstSegment*" "segment")
    '("gint" "rate")
    '("gint" "bpf")
  )
)



;; From audio-info.h

(define-function gst_audio_info_get_type
  (c-name "gst_audio_info_get_type")
  (return-type "GType")
)

(define-function gst_audio_info_new
  (c-name "gst_audio_info_new")
  (is-constructor-of "GstAudioInfo")
  (return-type "GstAudioInfo*")
)

(define-method init
  (of-object "GstAudioInfo")
  (c-name "gst_audio_info_init")
  (return-type "none")
)

(define-method copy
  (of-object "GstAudioInfo")
  (c-name "gst_audio_info_copy")
  (return-type "GstAudioInfo*")
)

(define-method free
  (of-object "GstAudioInfo")
  (c-name "gst_audio_info_free")
  (return-type "none")
)

(define-method set_format
  (of-object "GstAudioInfo")
  (c-name "gst_audio_info_set_format")
  (return-type "none")
  (parameters
    '("GstAudioFormat" "format")
    '("gint" "rate")
    '("gint" "channels")
    '("const-GstAudioChannelPosition*" "position")
  )
)

(define-method from_caps
  (of-object "GstAudioInfo")
  (c-name "gst_audio_info_from_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method to_caps
  (of-object "GstAudioInfo")
  (c-name "gst_audio_info_to_caps")
  (return-type "GstCaps*")
)

(define-method convert
  (of-object "GstAudioInfo")
  (c-name "gst_audio_info_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_fmt")
    '("gint64" "src_val")
    '("GstFormat" "dest_fmt")
    '("gint64*" "dest_val")
  )
)

(define-method is_equal
  (of-object "GstAudioInfo")
  (c-name "gst_audio_info_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstAudioInfo*" "other")
  )
)



;; From audio-quantize.h

(define-function gst_audio_quantize_new
  (c-name "gst_audio_quantize_new")
  (is-constructor-of "GstAudioQuantize")
  (return-type "GstAudioQuantize*")
  (parameters
    '("GstAudioDitherMethod" "dither")
    '("GstAudioNoiseShapingMethod" "ns")
    '("GstAudioQuantizeFlags" "flags")
    '("GstAudioFormat" "format")
    '("guint" "channels")
    '("guint" "quantizer")
  )
)

(define-method free
  (of-object "GstAudioQuantize")
  (c-name "gst_audio_quantize_free")
  (return-type "none")
)

(define-method reset
  (of-object "GstAudioQuantize")
  (c-name "gst_audio_quantize_reset")
  (return-type "none")
)

(define-method samples
  (of-object "GstAudioQuantize")
  (c-name "gst_audio_quantize_samples")
  (return-type "none")
  (parameters
    '("const-gpointer[]" "in")
    '("gpointer[]" "out")
    '("guint" "samples")
  )
)



;; From gstaudiobasesink.h

(define-function gst_audio_base_sink_get_type
  (c-name "gst_audio_base_sink_get_type")
  (return-type "GType")
)

(define-function gst_audio_base_sink_slave_method_get_type
  (c-name "gst_audio_base_sink_slave_method_get_type")
  (return-type "GType")
)

(define-method create_ringbuffer
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_create_ringbuffer")
  (return-type "GstAudioRingBuffer*")
)

(define-method set_provide_clock
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_set_provide_clock")
  (return-type "none")
  (parameters
    '("gboolean" "provide")
  )
)

(define-method get_provide_clock
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_get_provide_clock")
  (return-type "gboolean")
)

(define-method set_slave_method
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_set_slave_method")
  (return-type "none")
  (parameters
    '("GstAudioBaseSinkSlaveMethod" "method")
  )
)

(define-method get_slave_method
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_get_slave_method")
  (return-type "GstAudioBaseSinkSlaveMethod")
)

(define-method set_drift_tolerance
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_set_drift_tolerance")
  (return-type "none")
  (parameters
    '("gint64" "drift_tolerance")
  )
)

(define-method get_drift_tolerance
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_get_drift_tolerance")
  (return-type "gint64")
)

(define-method set_alignment_threshold
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_set_alignment_threshold")
  (return-type "none")
  (parameters
    '("GstClockTime" "alignment_threshold")
  )
)

(define-method get_alignment_threshold
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_get_alignment_threshold")
  (return-type "GstClockTime")
)

(define-method set_discont_wait
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_set_discont_wait")
  (return-type "none")
  (parameters
    '("GstClockTime" "discont_wait")
  )
)

(define-method get_discont_wait
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_get_discont_wait")
  (return-type "GstClockTime")
)

(define-method set_custom_slaving_callback
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_set_custom_slaving_callback")
  (return-type "none")
  (parameters
    '("GstAudioBaseSinkCustomSlavingCallback" "callback")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method report_device_failure
  (of-object "GstAudioBaseSink")
  (c-name "gst_audio_base_sink_report_device_failure")
  (return-type "none")
)



;; From gstaudiobasesrc.h

(define-function gst_audio_base_src_get_type
  (c-name "gst_audio_base_src_get_type")
  (return-type "GType")
)

(define-function gst_audio_base_src_slave_method_get_type
  (c-name "gst_audio_base_src_slave_method_get_type")
  (return-type "GType")
)

(define-method create_ringbuffer
  (of-object "GstAudioBaseSrc")
  (c-name "gst_audio_base_src_create_ringbuffer")
  (return-type "GstAudioRingBuffer*")
)

(define-method set_provide_clock
  (of-object "GstAudioBaseSrc")
  (c-name "gst_audio_base_src_set_provide_clock")
  (return-type "none")
  (parameters
    '("gboolean" "provide")
  )
)

(define-method get_provide_clock
  (of-object "GstAudioBaseSrc")
  (c-name "gst_audio_base_src_get_provide_clock")
  (return-type "gboolean")
)

(define-method set_slave_method
  (of-object "GstAudioBaseSrc")
  (c-name "gst_audio_base_src_set_slave_method")
  (return-type "none")
  (parameters
    '("GstAudioBaseSrcSlaveMethod" "method")
  )
)

(define-method get_slave_method
  (of-object "GstAudioBaseSrc")
  (c-name "gst_audio_base_src_get_slave_method")
  (return-type "GstAudioBaseSrcSlaveMethod")
)



;; From gstaudiocdsrc.h

(define-function gst_audio_cd_src_get_type
  (c-name "gst_audio_cd_src_get_type")
  (return-type "GType")
)

(define-function gst_audio_cd_src_mode_get_type
  (c-name "gst_audio_cd_src_mode_get_type")
  (return-type "GType")
)

(define-method add_track
  (of-object "GstAudioCdSrc")
  (c-name "gst_audio_cd_src_add_track")
  (return-type "gboolean")
  (parameters
    '("GstAudioCdSrcTrack*" "track")
  )
)



;; From gstaudioclock.h

(define-function gst_audio_clock_get_type
  (c-name "gst_audio_clock_get_type")
  (return-type "GType")
)

(define-function gst_audio_clock_new
  (c-name "gst_audio_clock_new")
  (is-constructor-of "GstAudioClock")
  (return-type "GstClock*")
  (parameters
    '("const-gchar*" "name")
    '("GstAudioClockGetTimeFunc" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_notify")
  )
)

(define-method reset
  (of-object "GstAudioClock")
  (c-name "gst_audio_clock_reset")
  (return-type "none")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-function gst_audio_clock_get_time
  (c-name "gst_audio_clock_get_time")
  (return-type "GstClockTime")
  (parameters
    '("GstClock*" "clock")
  )
)

(define-function gst_audio_clock_adjust
  (c-name "gst_audio_clock_adjust")
  (return-type "GstClockTime")
  (parameters
    '("GstClock*" "clock")
    '("GstClockTime" "time")
  )
)

(define-function gst_audio_clock_invalidate
  (c-name "gst_audio_clock_invalidate")
  (return-type "none")
  (parameters
    '("GstClock*" "clock")
  )
)



;; From gstaudiodecoder.h

(define-function gst_audio_decoder_get_type
  (c-name "gst_audio_decoder_get_type")
  (return-type "GType")
)

(define-method set_output_format
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_output_format")
  (return-type "gboolean")
  (parameters
    '("const-GstAudioInfo*" "info")
  )
)

(define-method proxy_getcaps
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_proxy_getcaps")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "caps")
    '("GstCaps*" "filter")
  )
)

(define-method negotiate
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_negotiate")
  (return-type "gboolean")
)

(define-method finish_frame
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_finish_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buf")
    '("gint" "frames")
  )
)

(define-method allocate_output_buffer
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_allocate_output_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gsize" "size")
  )
)

(define-method get_audio_info
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_audio_info")
  (return-type "GstAudioInfo*")
)

(define-method set_plc_aware
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_plc_aware")
  (return-type "none")
  (parameters
    '("gboolean" "plc")
  )
)

(define-method get_plc_aware
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_plc_aware")
  (return-type "gint")
)

(define-method set_estimate_rate
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_estimate_rate")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_estimate_rate
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_estimate_rate")
  (return-type "gint")
)

(define-method get_delay
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_delay")
  (return-type "gint")
)

(define-method set_max_errors
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_max_errors")
  (return-type "none")
  (parameters
    '("gint" "num")
  )
)

(define-method get_max_errors
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_max_errors")
  (return-type "gint")
)

(define-method set_latency
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_latency")
  (return-type "none")
  (parameters
    '("GstClockTime" "min")
    '("GstClockTime" "max")
  )
)

(define-method get_latency
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_latency")
  (return-type "none")
  (parameters
    '("GstClockTime*" "min")
    '("GstClockTime*" "max")
  )
)

(define-method get_parse_state
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_parse_state")
  (return-type "none")
  (parameters
    '("gboolean*" "sync")
    '("gboolean*" "eos")
  )
)

(define-method set_plc
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_plc")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_plc
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_plc")
  (return-type "gboolean")
)

(define-method set_min_latency
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_min_latency")
  (return-type "none")
  (parameters
    '("GstClockTime" "num")
  )
)

(define-method get_min_latency
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_min_latency")
  (return-type "GstClockTime")
)

(define-method set_tolerance
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_tolerance")
  (return-type "none")
  (parameters
    '("GstClockTime" "tolerance")
  )
)

(define-method get_tolerance
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_tolerance")
  (return-type "GstClockTime")
)

(define-method set_drainable
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_drainable")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_drainable
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_drainable")
  (return-type "gboolean")
)

(define-method set_needs_format
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_needs_format")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_needs_format
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_needs_format")
  (return-type "gboolean")
)

(define-method get_allocator
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_get_allocator")
  (return-type "none")
  (parameters
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)

(define-method merge_tags
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_merge_tags")
  (return-type "none")
  (parameters
    '("const-GstTagList*" "tags")
    '("GstTagMergeMode" "mode")
  )
)

(define-method set_use_default_pad_acceptcaps
  (of-object "GstAudioDecoder")
  (c-name "gst_audio_decoder_set_use_default_pad_acceptcaps")
  (return-type "none")
  (parameters
    '("gboolean" "use")
  )
)



;; From gstaudioencoder.h

(define-function gst_audio_encoder_get_type
  (c-name "gst_audio_encoder_get_type")
  (return-type "GType")
)

(define-method finish_frame
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_finish_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
    '("gint" "samples")
  )
)

(define-method proxy_getcaps
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_proxy_getcaps")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "caps")
    '("GstCaps*" "filter")
  )
)

(define-method set_output_format
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_output_format")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method negotiate
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_negotiate")
  (return-type "gboolean")
)

(define-method allocate_output_buffer
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_allocate_output_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gsize" "size")
  )
)

(define-method get_audio_info
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_audio_info")
  (return-type "GstAudioInfo*")
)

(define-method get_frame_samples_min
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_frame_samples_min")
  (return-type "gint")
)

(define-method set_frame_samples_min
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_frame_samples_min")
  (return-type "none")
  (parameters
    '("gint" "num")
  )
)

(define-method get_frame_samples_max
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_frame_samples_max")
  (return-type "gint")
)

(define-method set_frame_samples_max
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_frame_samples_max")
  (return-type "none")
  (parameters
    '("gint" "num")
  )
)

(define-method get_frame_max
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_frame_max")
  (return-type "gint")
)

(define-method set_frame_max
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_frame_max")
  (return-type "none")
  (parameters
    '("gint" "num")
  )
)

(define-method get_lookahead
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_lookahead")
  (return-type "gint")
)

(define-method set_lookahead
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_lookahead")
  (return-type "none")
  (parameters
    '("gint" "num")
  )
)

(define-method get_latency
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_latency")
  (return-type "none")
  (parameters
    '("GstClockTime*" "min")
    '("GstClockTime*" "max")
  )
)

(define-method set_latency
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_latency")
  (return-type "none")
  (parameters
    '("GstClockTime" "min")
    '("GstClockTime" "max")
  )
)

(define-method set_headers
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_headers")
  (return-type "none")
  (parameters
    '("GList*" "headers")
  )
)

(define-method set_mark_granule
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_mark_granule")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_mark_granule
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_mark_granule")
  (return-type "gboolean")
)

(define-method set_perfect_timestamp
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_perfect_timestamp")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_perfect_timestamp
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_perfect_timestamp")
  (return-type "gboolean")
)

(define-method set_hard_resync
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_hard_resync")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_hard_resync
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_hard_resync")
  (return-type "gboolean")
)

(define-method set_tolerance
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_tolerance")
  (return-type "none")
  (parameters
    '("GstClockTime" "tolerance")
  )
)

(define-method get_tolerance
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_tolerance")
  (return-type "GstClockTime")
)

(define-method set_hard_min
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_hard_min")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_hard_min
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_hard_min")
  (return-type "gboolean")
)

(define-method set_drainable
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_set_drainable")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_drainable
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_drainable")
  (return-type "gboolean")
)

(define-method get_allocator
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_get_allocator")
  (return-type "none")
  (parameters
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)

(define-method merge_tags
  (of-object "GstAudioEncoder")
  (c-name "gst_audio_encoder_merge_tags")
  (return-type "none")
  (parameters
    '("const-GstTagList*" "tags")
    '("GstTagMergeMode" "mode")
  )
)



;; From gstaudiofilter.h

(define-function gst_audio_filter_get_type
  (c-name "gst_audio_filter_get_type")
  (return-type "GType")
)

(define-method add_pad_templates
  (of-object "GstAudioFilterClass")
  (c-name "gst_audio_filter_class_add_pad_templates")
  (return-type "none")
  (parameters
    '("GstCaps*" "allowed_caps")
  )
)



;; From gstaudioiec61937.h

(define-function gst_audio_iec61937_frame_size
  (c-name "gst_audio_iec61937_frame_size")
  (return-type "guint")
  (parameters
    '("const-GstAudioRingBufferSpec*" "spec")
  )
)

(define-function gst_audio_iec61937_payload
  (c-name "gst_audio_iec61937_payload")
  (return-type "gboolean")
  (parameters
    '("const-guint8*" "src")
    '("guint" "src_n")
    '("guint8*" "dst")
    '("guint" "dst_n")
    '("const-GstAudioRingBufferSpec*" "spec")
    '("gint" "endianness")
  )
)



;; From gstaudiometa.h

(define-function gst_audio_downmix_meta_api_get_type
  (c-name "gst_audio_downmix_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_audio_downmix_meta_get_info
  (c-name "gst_audio_downmix_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method get_audio_downmix_meta_for_channels
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_audio_downmix_meta_for_channels")
  (return-type "GstAudioDownmixMeta*")
  (parameters
    '("const-GstAudioChannelPosition*" "to_position")
    '("gint" "to_channels")
  )
)

(define-method add_audio_downmix_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_audio_downmix_meta")
  (return-type "GstAudioDownmixMeta*")
  (parameters
    '("const-GstAudioChannelPosition*" "from_position")
    '("gint" "from_channels")
    '("const-GstAudioChannelPosition*" "to_position")
    '("gint" "to_channels")
    '("const-gfloat**" "matrix")
  )
)

(define-function gst_audio_clipping_meta_api_get_type
  (c-name "gst_audio_clipping_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_audio_clipping_meta_get_info
  (c-name "gst_audio_clipping_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_audio_clipping_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_audio_clipping_meta")
  (return-type "GstAudioClippingMeta*")
  (parameters
    '("GstFormat" "format")
    '("guint64" "start")
    '("guint64" "end")
  )
)



;; From gstaudiopack-dist.h

(define-function audio_orc_unpack_u8
  (c-name "audio_orc_unpack_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u8_trunc
  (c-name "audio_orc_unpack_u8_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s8
  (c-name "audio_orc_unpack_s8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s8_trunc
  (c-name "audio_orc_unpack_s8_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u16
  (c-name "audio_orc_unpack_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u16_trunc
  (c-name "audio_orc_unpack_u16_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s16
  (c-name "audio_orc_unpack_s16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s16_trunc
  (c-name "audio_orc_unpack_s16_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u16_swap
  (c-name "audio_orc_unpack_u16_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u16_swap_trunc
  (c-name "audio_orc_unpack_u16_swap_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s16_swap
  (c-name "audio_orc_unpack_s16_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s16_swap_trunc
  (c-name "audio_orc_unpack_s16_swap_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u24_32
  (c-name "audio_orc_unpack_u24_32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s24_32
  (c-name "audio_orc_unpack_s24_32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u24_32_swap
  (c-name "audio_orc_unpack_u24_32_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s24_32_swap
  (c-name "audio_orc_unpack_s24_32_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u32
  (c-name "audio_orc_unpack_u32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u32_swap
  (c-name "audio_orc_unpack_u32_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s32
  (c-name "audio_orc_unpack_s32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s32_swap
  (c-name "audio_orc_unpack_s32_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_f32
  (c-name "audio_orc_unpack_f32")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gfloat*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_f32_swap
  (c-name "audio_orc_unpack_f32_swap")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gfloat*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_f64
  (c-name "audio_orc_unpack_f64")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_f64_swap
  (c-name "audio_orc_unpack_f64_swap")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u8
  (c-name "audio_orc_pack_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s8
  (c-name "audio_orc_pack_s8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u16
  (c-name "audio_orc_pack_u16")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s16
  (c-name "audio_orc_pack_s16")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u16_swap
  (c-name "audio_orc_pack_u16_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s16_swap
  (c-name "audio_orc_pack_s16_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u24_32
  (c-name "audio_orc_pack_u24_32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s24_32
  (c-name "audio_orc_pack_s24_32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u24_32_swap
  (c-name "audio_orc_pack_u24_32_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s24_32_swap
  (c-name "audio_orc_pack_s24_32_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u32
  (c-name "audio_orc_pack_u32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s32
  (c-name "audio_orc_pack_s32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u32_swap
  (c-name "audio_orc_pack_u32_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s32_swap
  (c-name "audio_orc_pack_s32_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_f32
  (c-name "audio_orc_pack_f32")
  (return-type "none")
  (parameters
    '("gfloat*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_f32_swap
  (c-name "audio_orc_pack_f32_swap")
  (return-type "none")
  (parameters
    '("gfloat*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_f64
  (c-name "audio_orc_pack_f64")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_f64_swap
  (c-name "audio_orc_pack_f64_swap")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_splat_u16
  (c-name "audio_orc_splat_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function audio_orc_splat_u32
  (c-name "audio_orc_splat_u32")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function audio_orc_splat_u64
  (c-name "audio_orc_splat_u64")
  (return-type "none")
  (parameters
    '("guint64*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function audio_orc_int_bias
  (c-name "audio_orc_int_bias")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function audio_orc_int_dither
  (c-name "audio_orc_int_dither")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("const-gint32*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function audio_orc_update_rand
  (c-name "audio_orc_update_rand")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("int" "n")
  )
)

(define-function audio_orc_s32_to_double
  (c-name "audio_orc_s32_to_double")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_double_to_s32
  (c-name "audio_orc_double_to_s32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)



;; From gstaudiopack.h

(define-function audio_orc_unpack_u8
  (c-name "audio_orc_unpack_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u8_trunc
  (c-name "audio_orc_unpack_u8_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s8
  (c-name "audio_orc_unpack_s8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s8_trunc
  (c-name "audio_orc_unpack_s8_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u16
  (c-name "audio_orc_unpack_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u16_trunc
  (c-name "audio_orc_unpack_u16_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s16
  (c-name "audio_orc_unpack_s16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s16_trunc
  (c-name "audio_orc_unpack_s16_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u16_swap
  (c-name "audio_orc_unpack_u16_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u16_swap_trunc
  (c-name "audio_orc_unpack_u16_swap_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s16_swap
  (c-name "audio_orc_unpack_s16_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s16_swap_trunc
  (c-name "audio_orc_unpack_s16_swap_trunc")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u24_32
  (c-name "audio_orc_unpack_u24_32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s24_32
  (c-name "audio_orc_unpack_s24_32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u24_32_swap
  (c-name "audio_orc_unpack_u24_32_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s24_32_swap
  (c-name "audio_orc_unpack_s24_32_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u32
  (c-name "audio_orc_unpack_u32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_u32_swap
  (c-name "audio_orc_unpack_u32_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s32
  (c-name "audio_orc_unpack_s32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_s32_swap
  (c-name "audio_orc_unpack_s32_swap")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_f32
  (c-name "audio_orc_unpack_f32")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gfloat*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_f32_swap
  (c-name "audio_orc_unpack_f32_swap")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gfloat*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_f64
  (c-name "audio_orc_unpack_f64")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_unpack_f64_swap
  (c-name "audio_orc_unpack_f64_swap")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u8
  (c-name "audio_orc_pack_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s8
  (c-name "audio_orc_pack_s8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u16
  (c-name "audio_orc_pack_u16")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s16
  (c-name "audio_orc_pack_s16")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u16_swap
  (c-name "audio_orc_pack_u16_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s16_swap
  (c-name "audio_orc_pack_s16_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u24_32
  (c-name "audio_orc_pack_u24_32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s24_32
  (c-name "audio_orc_pack_s24_32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u24_32_swap
  (c-name "audio_orc_pack_u24_32_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s24_32_swap
  (c-name "audio_orc_pack_s24_32_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u32
  (c-name "audio_orc_pack_u32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s32
  (c-name "audio_orc_pack_s32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_u32_swap
  (c-name "audio_orc_pack_u32_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_s32_swap
  (c-name "audio_orc_pack_s32_swap")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_f32
  (c-name "audio_orc_pack_f32")
  (return-type "none")
  (parameters
    '("gfloat*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_f32_swap
  (c-name "audio_orc_pack_f32_swap")
  (return-type "none")
  (parameters
    '("gfloat*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_f64
  (c-name "audio_orc_pack_f64")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_pack_f64_swap
  (c-name "audio_orc_pack_f64_swap")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_splat_u16
  (c-name "audio_orc_splat_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function audio_orc_splat_u32
  (c-name "audio_orc_splat_u32")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function audio_orc_splat_u64
  (c-name "audio_orc_splat_u64")
  (return-type "none")
  (parameters
    '("guint64*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function audio_orc_int_bias
  (c-name "audio_orc_int_bias")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function audio_orc_int_dither
  (c-name "audio_orc_int_dither")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("const-gint32*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function audio_orc_update_rand
  (c-name "audio_orc_update_rand")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("int" "n")
  )
)

(define-function audio_orc_s32_to_double
  (c-name "audio_orc_s32_to_double")
  (return-type "none")
  (parameters
    '("gdouble*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function audio_orc_double_to_s32
  (c-name "audio_orc_double_to_s32")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-gdouble*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)



;; From gstaudioringbuffer.h

(define-function gst_audio_ring_buffer_get_type
  (c-name "gst_audio_ring_buffer_get_type")
  (return-type "GType")
)

(define-method set_callback
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_set_callback")
  (return-type "none")
  (parameters
    '("GstAudioRingBufferCallback" "cb")
    '("gpointer" "user_data")
  )
)

(define-function gst_audio_ring_buffer_parse_caps
  (c-name "gst_audio_ring_buffer_parse_caps")
  (return-type "gboolean")
  (parameters
    '("GstAudioRingBufferSpec*" "spec")
    '("GstCaps*" "caps")
  )
)

(define-function gst_audio_ring_buffer_debug_spec_caps
  (c-name "gst_audio_ring_buffer_debug_spec_caps")
  (return-type "none")
  (parameters
    '("GstAudioRingBufferSpec*" "spec")
  )
)

(define-function gst_audio_ring_buffer_debug_spec_buff
  (c-name "gst_audio_ring_buffer_debug_spec_buff")
  (return-type "none")
  (parameters
    '("GstAudioRingBufferSpec*" "spec")
  )
)

(define-method convert
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_fmt")
    '("gint64" "src_val")
    '("GstFormat" "dest_fmt")
    '("gint64*" "dest_val")
  )
)

(define-method open_device
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_open_device")
  (return-type "gboolean")
)

(define-method close_device
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_close_device")
  (return-type "gboolean")
)

(define-method device_is_open
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_device_is_open")
  (return-type "gboolean")
)

(define-method acquire
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_acquire")
  (return-type "gboolean")
  (parameters
    '("GstAudioRingBufferSpec*" "spec")
  )
)

(define-method release
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_release")
  (return-type "gboolean")
)

(define-method is_acquired
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_is_acquired")
  (return-type "gboolean")
)

(define-method set_channel_positions
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_set_channel_positions")
  (return-type "none")
  (parameters
    '("const-GstAudioChannelPosition*" "position")
  )
)

(define-method activate
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_activate")
  (return-type "gboolean")
  (parameters
    '("gboolean" "active")
  )
)

(define-method is_active
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_is_active")
  (return-type "gboolean")
)

(define-method set_flushing
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method is_flushing
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_is_flushing")
  (return-type "gboolean")
)

(define-method start
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_start")
  (return-type "gboolean")
)

(define-method pause
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_pause")
  (return-type "gboolean")
)

(define-method stop
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_stop")
  (return-type "gboolean")
)

(define-method delay
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_delay")
  (return-type "guint")
)

(define-method samples_done
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_samples_done")
  (return-type "guint64")
)

(define-method set_sample
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_set_sample")
  (return-type "none")
  (parameters
    '("guint64" "sample")
  )
)

(define-method clear_all
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_clear_all")
  (return-type "none")
)

(define-method commit
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_commit")
  (return-type "guint")
  (parameters
    '("guint64*" "sample")
    '("guint8*" "data")
    '("gint" "in_samples")
    '("gint" "out_samples")
    '("gint*" "accum")
  )
)

(define-method read
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_read")
  (return-type "guint")
  (parameters
    '("guint64" "sample")
    '("guint8*" "data")
    '("guint" "len")
    '("GstClockTime*" "timestamp")
  )
)

(define-method set_timestamp
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_set_timestamp")
  (return-type "none")
  (parameters
    '("gint" "readseg")
    '("GstClockTime" "timestamp")
  )
)

(define-method prepare_read
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_prepare_read")
  (return-type "gboolean")
  (parameters
    '("gint*" "segment")
    '("guint8**" "readptr")
    '("gint*" "len")
  )
)

(define-method clear
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_clear")
  (return-type "none")
  (parameters
    '("gint" "segment")
  )
)

(define-method advance
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_advance")
  (return-type "none")
  (parameters
    '("guint" "advance")
  )
)

(define-method may_start
  (of-object "GstAudioRingBuffer")
  (c-name "gst_audio_ring_buffer_may_start")
  (return-type "none")
  (parameters
    '("gboolean" "allowed")
  )
)



;; From gstaudiosink.h

(define-function gst_audio_sink_get_type
  (c-name "gst_audio_sink_get_type")
  (return-type "GType")
)



;; From gstaudiosrc.h

(define-function gst_audio_src_get_type
  (c-name "gst_audio_src_get_type")
  (return-type "GType")
)



;; From gstaudioutilsprivate.h



;; From streamvolume.h

(define-function gst_stream_volume_get_type
  (c-name "gst_stream_volume_get_type")
  (return-type "GType")
)

(define-method set_volume
  (of-object "GstStreamVolume")
  (c-name "gst_stream_volume_set_volume")
  (return-type "none")
  (parameters
    '("GstStreamVolumeFormat" "format")
    '("gdouble" "val")
  )
)

(define-method get_volume
  (of-object "GstStreamVolume")
  (c-name "gst_stream_volume_get_volume")
  (return-type "gdouble")
  (parameters
    '("GstStreamVolumeFormat" "format")
  )
)

(define-method set_mute
  (of-object "GstStreamVolume")
  (c-name "gst_stream_volume_set_mute")
  (return-type "none")
  (parameters
    '("gboolean" "mute")
  )
)

(define-method get_mute
  (of-object "GstStreamVolume")
  (c-name "gst_stream_volume_get_mute")
  (return-type "gboolean")
)

(define-function gst_stream_volume_convert_volume
  (c-name "gst_stream_volume_convert_volume")
  (return-type "gdouble")
  (parameters
    '("GstStreamVolumeFormat" "from")
    '("GstStreamVolumeFormat" "to")
    '("gdouble" "val")
  )
)



;; From fft.h



;; From gstfftf32.h

(define-function gst_fft_f32_new
  (c-name "gst_fft_f32_new")
  (is-constructor-of "GstFftF32")
  (return-type "GstFFTF32*")
  (parameters
    '("gint" "len")
    '("gboolean" "inverse")
  )
)

(define-method free
  (of-object "GstFFTF32")
  (c-name "gst_fft_f32_free")
  (return-type "none")
)

(define-method fft
  (of-object "GstFFTF32")
  (c-name "gst_fft_f32_fft")
  (return-type "none")
  (parameters
    '("const-gfloat*" "timedata")
    '("GstFFTF32Complex*" "freqdata")
  )
)

(define-method inverse_fft
  (of-object "GstFFTF32")
  (c-name "gst_fft_f32_inverse_fft")
  (return-type "none")
  (parameters
    '("const-GstFFTF32Complex*" "freqdata")
    '("gfloat*" "timedata")
  )
)

(define-method window
  (of-object "GstFFTF32")
  (c-name "gst_fft_f32_window")
  (return-type "none")
  (parameters
    '("gfloat*" "timedata")
    '("GstFFTWindow" "window")
  )
)



;; From gstfftf64.h

(define-function gst_fft_f64_new
  (c-name "gst_fft_f64_new")
  (is-constructor-of "GstFftF64")
  (return-type "GstFFTF64*")
  (parameters
    '("gint" "len")
    '("gboolean" "inverse")
  )
)

(define-method free
  (of-object "GstFFTF64")
  (c-name "gst_fft_f64_free")
  (return-type "none")
)

(define-method fft
  (of-object "GstFFTF64")
  (c-name "gst_fft_f64_fft")
  (return-type "none")
  (parameters
    '("const-gdouble*" "timedata")
    '("GstFFTF64Complex*" "freqdata")
  )
)

(define-method inverse_fft
  (of-object "GstFFTF64")
  (c-name "gst_fft_f64_inverse_fft")
  (return-type "none")
  (parameters
    '("const-GstFFTF64Complex*" "freqdata")
    '("gdouble*" "timedata")
  )
)

(define-method window
  (of-object "GstFFTF64")
  (c-name "gst_fft_f64_window")
  (return-type "none")
  (parameters
    '("gdouble*" "timedata")
    '("GstFFTWindow" "window")
  )
)



;; From gstfft.h

(define-function gst_fft_next_fast_length
  (c-name "gst_fft_next_fast_length")
  (return-type "gint")
  (parameters
    '("gint" "n")
  )
)



;; From gstffts16.h

(define-function gst_fft_s16_new
  (c-name "gst_fft_s16_new")
  (is-constructor-of "GstFftS16")
  (return-type "GstFFTS16*")
  (parameters
    '("gint" "len")
    '("gboolean" "inverse")
  )
)

(define-method free
  (of-object "GstFFTS16")
  (c-name "gst_fft_s16_free")
  (return-type "none")
)

(define-method fft
  (of-object "GstFFTS16")
  (c-name "gst_fft_s16_fft")
  (return-type "none")
  (parameters
    '("const-gint16*" "timedata")
    '("GstFFTS16Complex*" "freqdata")
  )
)

(define-method inverse_fft
  (of-object "GstFFTS16")
  (c-name "gst_fft_s16_inverse_fft")
  (return-type "none")
  (parameters
    '("const-GstFFTS16Complex*" "freqdata")
    '("gint16*" "timedata")
  )
)

(define-method window
  (of-object "GstFFTS16")
  (c-name "gst_fft_s16_window")
  (return-type "none")
  (parameters
    '("gint16*" "timedata")
    '("GstFFTWindow" "window")
  )
)



;; From gstffts32.h

(define-function gst_fft_s32_new
  (c-name "gst_fft_s32_new")
  (is-constructor-of "GstFftS32")
  (return-type "GstFFTS32*")
  (parameters
    '("gint" "len")
    '("gboolean" "inverse")
  )
)

(define-method free
  (of-object "GstFFTS32")
  (c-name "gst_fft_s32_free")
  (return-type "none")
)

(define-method fft
  (of-object "GstFFTS32")
  (c-name "gst_fft_s32_fft")
  (return-type "none")
  (parameters
    '("const-gint32*" "timedata")
    '("GstFFTS32Complex*" "freqdata")
  )
)

(define-method inverse_fft
  (of-object "GstFFTS32")
  (c-name "gst_fft_s32_inverse_fft")
  (return-type "none")
  (parameters
    '("const-GstFFTS32Complex*" "freqdata")
    '("gint32*" "timedata")
  )
)

(define-method window
  (of-object "GstFFTS32")
  (c-name "gst_fft_s32_window")
  (return-type "none")
  (parameters
    '("gint32*" "timedata")
    '("GstFFTWindow" "window")
  )
)



;; From kiss_fft_f32.h

(define-function kiss_fft_f32_alloc
  (c-name "kiss_fft_f32_alloc")
  (return-type "kiss_fft_f32_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fft_f32
  (c-name "kiss_fft_f32")
  (return-type "none")
  (parameters
    '("kiss_fft_f32_cfg" "cfg")
    '("const-kiss_fft_f32_cpx*" "fin")
    '("kiss_fft_f32_cpx*" "fout")
  )
)

(define-function kiss_fft_f32_stride
  (c-name "kiss_fft_f32_stride")
  (return-type "none")
  (parameters
    '("kiss_fft_f32_cfg" "cfg")
    '("const-kiss_fft_f32_cpx*" "fin")
    '("kiss_fft_f32_cpx*" "fout")
    '("int" "fin_stride")
  )
)

(define-function kiss_fft_f32_cleanup
  (c-name "kiss_fft_f32_cleanup")
  (return-type "none")
)

(define-function kiss_fft_f32_next_fast_size
  (c-name "kiss_fft_f32_next_fast_size")
  (return-type "int")
  (parameters
    '("int" "n")
  )
)



;; From kiss_fft_f64.h

(define-function kiss_fft_f64_alloc
  (c-name "kiss_fft_f64_alloc")
  (return-type "kiss_fft_f64_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fft_f64
  (c-name "kiss_fft_f64")
  (return-type "none")
  (parameters
    '("kiss_fft_f64_cfg" "cfg")
    '("const-kiss_fft_f64_cpx*" "fin")
    '("kiss_fft_f64_cpx*" "fout")
  )
)

(define-function kiss_fft_f64_stride
  (c-name "kiss_fft_f64_stride")
  (return-type "none")
  (parameters
    '("kiss_fft_f64_cfg" "cfg")
    '("const-kiss_fft_f64_cpx*" "fin")
    '("kiss_fft_f64_cpx*" "fout")
    '("int" "fin_stride")
  )
)

(define-function kiss_fft_f64_cleanup
  (c-name "kiss_fft_f64_cleanup")
  (return-type "none")
)

(define-function kiss_fft_f64_next_fast_size
  (c-name "kiss_fft_f64_next_fast_size")
  (return-type "int")
  (parameters
    '("int" "n")
  )
)



;; From _kiss_fft_guts_f32.h



;; From _kiss_fft_guts_f64.h



;; From _kiss_fft_guts_s16.h



;; From _kiss_fft_guts_s32.h



;; From kiss_fftr_f32.h

(define-function kiss_fftr_f32_alloc
  (c-name "kiss_fftr_f32_alloc")
  (return-type "kiss_fftr_f32_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fftr_f32
  (c-name "kiss_fftr_f32")
  (return-type "none")
  (parameters
    '("kiss_fftr_f32_cfg" "cfg")
    '("const-kiss_fft_f32_scalar*" "timedata")
    '("kiss_fft_f32_cpx*" "freqdata")
  )
)

(define-function kiss_fftri_f32
  (c-name "kiss_fftri_f32")
  (return-type "none")
  (parameters
    '("kiss_fftr_f32_cfg" "cfg")
    '("const-kiss_fft_f32_cpx*" "freqdata")
    '("kiss_fft_f32_scalar*" "timedata")
  )
)



;; From kiss_fftr_f64.h

(define-function kiss_fftr_f64_alloc
  (c-name "kiss_fftr_f64_alloc")
  (return-type "kiss_fftr_f64_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fftr_f64
  (c-name "kiss_fftr_f64")
  (return-type "none")
  (parameters
    '("kiss_fftr_f64_cfg" "cfg")
    '("const-kiss_fft_f64_scalar*" "timedata")
    '("kiss_fft_f64_cpx*" "freqdata")
  )
)

(define-function kiss_fftri_f64
  (c-name "kiss_fftri_f64")
  (return-type "none")
  (parameters
    '("kiss_fftr_f64_cfg" "cfg")
    '("const-kiss_fft_f64_cpx*" "freqdata")
    '("kiss_fft_f64_scalar*" "timedata")
  )
)



;; From kiss_fftr_s16.h

(define-function kiss_fftr_s16_alloc
  (c-name "kiss_fftr_s16_alloc")
  (return-type "kiss_fftr_s16_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fftr_s16
  (c-name "kiss_fftr_s16")
  (return-type "none")
  (parameters
    '("kiss_fftr_s16_cfg" "cfg")
    '("const-kiss_fft_s16_scalar*" "timedata")
    '("kiss_fft_s16_cpx*" "freqdata")
  )
)

(define-function kiss_fftri_s16
  (c-name "kiss_fftri_s16")
  (return-type "none")
  (parameters
    '("kiss_fftr_s16_cfg" "cfg")
    '("const-kiss_fft_s16_cpx*" "freqdata")
    '("kiss_fft_s16_scalar*" "timedata")
  )
)



;; From kiss_fftr_s32.h

(define-function kiss_fftr_s32_alloc
  (c-name "kiss_fftr_s32_alloc")
  (return-type "kiss_fftr_s32_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fftr_s32
  (c-name "kiss_fftr_s32")
  (return-type "none")
  (parameters
    '("kiss_fftr_s32_cfg" "cfg")
    '("const-kiss_fft_s32_scalar*" "timedata")
    '("kiss_fft_s32_cpx*" "freqdata")
  )
)

(define-function kiss_fftri_s32
  (c-name "kiss_fftri_s32")
  (return-type "none")
  (parameters
    '("kiss_fftr_s32_cfg" "cfg")
    '("const-kiss_fft_s32_cpx*" "freqdata")
    '("kiss_fft_s32_scalar*" "timedata")
  )
)



;; From kiss_fft_s16.h

(define-function kiss_fft_s16_alloc
  (c-name "kiss_fft_s16_alloc")
  (return-type "kiss_fft_s16_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fft_s16
  (c-name "kiss_fft_s16")
  (return-type "none")
  (parameters
    '("kiss_fft_s16_cfg" "cfg")
    '("const-kiss_fft_s16_cpx*" "fin")
    '("kiss_fft_s16_cpx*" "fout")
  )
)

(define-function kiss_fft_s16_stride
  (c-name "kiss_fft_s16_stride")
  (return-type "none")
  (parameters
    '("kiss_fft_s16_cfg" "cfg")
    '("const-kiss_fft_s16_cpx*" "fin")
    '("kiss_fft_s16_cpx*" "fout")
    '("int" "fin_stride")
  )
)

(define-function kiss_fft_s16_cleanup
  (c-name "kiss_fft_s16_cleanup")
  (return-type "none")
)

(define-function kiss_fft_s16_next_fast_size
  (c-name "kiss_fft_s16_next_fast_size")
  (return-type "int")
  (parameters
    '("int" "n")
  )
)



;; From kiss_fft_s32.h

(define-function kiss_fft_s32_alloc
  (c-name "kiss_fft_s32_alloc")
  (return-type "kiss_fft_s32_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fft_s32
  (c-name "kiss_fft_s32")
  (return-type "none")
  (parameters
    '("kiss_fft_s32_cfg" "cfg")
    '("const-kiss_fft_s32_cpx*" "fin")
    '("kiss_fft_s32_cpx*" "fout")
  )
)

(define-function kiss_fft_s32_stride
  (c-name "kiss_fft_s32_stride")
  (return-type "none")
  (parameters
    '("kiss_fft_s32_cfg" "cfg")
    '("const-kiss_fft_s32_cpx*" "fin")
    '("kiss_fft_s32_cpx*" "fout")
    '("int" "fin_stride")
  )
)

(define-function kiss_fft_s32_cleanup
  (c-name "kiss_fft_s32_cleanup")
  (return-type "none")
)

(define-function kiss_fft_s32_next_fast_size
  (c-name "kiss_fft_s32_next_fast_size")
  (return-type "int")
  (parameters
    '("int" "n")
  )
)



;; From codec-utils.h

(define-function gst_codec_utils_aac_get_sample_rate_from_index
  (c-name "gst_codec_utils_aac_get_sample_rate_from_index")
  (return-type "guint")
  (parameters
    '("guint" "sr_idx")
  )
)

(define-function gst_codec_utils_aac_get_index_from_sample_rate
  (c-name "gst_codec_utils_aac_get_index_from_sample_rate")
  (return-type "gint")
  (parameters
    '("guint" "rate")
  )
)

(define-function gst_codec_utils_aac_get_profile
  (c-name "gst_codec_utils_aac_get_profile")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "audio_config")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_aac_get_level
  (c-name "gst_codec_utils_aac_get_level")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "audio_config")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_aac_caps_set_level_and_profile
  (c-name "gst_codec_utils_aac_caps_set_level_and_profile")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("const-guint8*" "audio_config")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h264_get_profile
  (c-name "gst_codec_utils_h264_get_profile")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "sps")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h264_get_level
  (c-name "gst_codec_utils_h264_get_level")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "sps")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h264_get_level_idc
  (c-name "gst_codec_utils_h264_get_level_idc")
  (return-type "guint8")
  (parameters
    '("const-gchar*" "level")
  )
)

(define-function gst_codec_utils_h264_caps_set_level_and_profile
  (c-name "gst_codec_utils_h264_caps_set_level_and_profile")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("const-guint8*" "sps")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h265_get_profile
  (c-name "gst_codec_utils_h265_get_profile")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "profile_tier_level")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h265_get_tier
  (c-name "gst_codec_utils_h265_get_tier")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "profile_tier_level")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h265_get_level
  (c-name "gst_codec_utils_h265_get_level")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "profile_tier_level")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h265_get_level_idc
  (c-name "gst_codec_utils_h265_get_level_idc")
  (return-type "guint8")
  (parameters
    '("const-gchar*" "level")
  )
)

(define-function gst_codec_utils_h265_caps_set_level_tier_and_profile
  (c-name "gst_codec_utils_h265_caps_set_level_tier_and_profile")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("const-guint8*" "profile_tier_level")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_mpeg4video_get_profile
  (c-name "gst_codec_utils_mpeg4video_get_profile")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "vis_obj_seq")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_mpeg4video_get_level
  (c-name "gst_codec_utils_mpeg4video_get_level")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "vis_obj_seq")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_mpeg4video_caps_set_level_and_profile
  (c-name "gst_codec_utils_mpeg4video_caps_set_level_and_profile")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("const-guint8*" "vis_obj_seq")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_opus_parse_caps
  (c-name "gst_codec_utils_opus_parse_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("guint32*" "rate")
    '("guint8*" "channels")
    '("guint8*" "channel_mapping_family")
    '("guint8*" "stream_count")
    '("guint8*" "coupled_count")
    '("guint8" "channel_mapping[256]")
  )
)

(define-function gst_codec_utils_opus_create_caps
  (c-name "gst_codec_utils_opus_create_caps")
  (return-type "GstCaps*")
  (parameters
    '("guint32" "rate")
    '("guint8" "channels")
    '("guint8" "channel_mapping_family")
    '("guint8" "stream_count")
    '("guint8" "coupled_count")
    '("const-guint8*" "channel_mapping")
  )
)

(define-function gst_codec_utils_opus_create_caps_from_header
  (c-name "gst_codec_utils_opus_create_caps_from_header")
  (return-type "GstCaps*")
  (parameters
    '("GstBuffer*" "header")
    '("GstBuffer*" "comments")
  )
)

(define-function gst_codec_utils_opus_create_header
  (c-name "gst_codec_utils_opus_create_header")
  (return-type "GstBuffer*")
  (parameters
    '("guint32" "rate")
    '("guint8" "channels")
    '("guint8" "channel_mapping_family")
    '("guint8" "stream_count")
    '("guint8" "coupled_count")
    '("const-guint8*" "channel_mapping")
    '("guint16" "pre_skip")
    '("gint16" "output_gain")
  )
)

(define-function gst_codec_utils_opus_parse_header
  (c-name "gst_codec_utils_opus_parse_header")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "header")
    '("guint32*" "rate")
    '("guint8*" "channels")
    '("guint8*" "channel_mapping_family")
    '("guint8*" "stream_count")
    '("guint8*" "coupled_count")
    '("guint8" "channel_mapping[256]")
    '("guint16*" "pre_skip")
    '("gint16*" "output_gain")
  )
)



;; From descriptions.h

(define-function gst_pb_utils_add_codec_description_to_tag_list
  (c-name "gst_pb_utils_add_codec_description_to_tag_list")
  (return-type "gboolean")
  (parameters
    '("GstTagList*" "taglist")
    '("const-gchar*" "codec_tag")
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_pb_utils_get_codec_description
  (c-name "gst_pb_utils_get_codec_description")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_pb_utils_get_source_description
  (c-name "gst_pb_utils_get_source_description")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_pb_utils_get_sink_description
  (c-name "gst_pb_utils_get_sink_description")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_pb_utils_get_decoder_description
  (c-name "gst_pb_utils_get_decoder_description")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_pb_utils_get_encoder_description
  (c-name "gst_pb_utils_get_encoder_description")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_pb_utils_get_element_description
  (c-name "gst_pb_utils_get_element_description")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "factory_name")
  )
)



;; From encoding-profile.h

(define-function gst_encoding_profile_get_type
  (c-name "gst_encoding_profile_get_type")
  (return-type "GType")
)

(define-function gst_encoding_container_profile_get_type
  (c-name "gst_encoding_container_profile_get_type")
  (return-type "GType")
)

(define-function gst_encoding_video_profile_get_type
  (c-name "gst_encoding_video_profile_get_type")
  (return-type "GType")
)

(define-function gst_encoding_audio_profile_get_type
  (c-name "gst_encoding_audio_profile_get_type")
  (return-type "GType")
)

(define-method get_name
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_name")
  (return-type "const-gchar*")
)

(define-method set_name
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_description
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_description")
  (return-type "const-gchar*")
)

(define-method set_description
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_description")
  (return-type "none")
  (parameters
    '("const-gchar*" "description")
  )
)

(define-method get_format
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_format")
  (return-type "GstCaps*")
)

(define-method set_format
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_format")
  (return-type "none")
  (parameters
    '("GstCaps*" "format")
  )
)

(define-method get_allow_dynamic_output
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_allow_dynamic_output")
  (return-type "gboolean")
)

(define-method set_allow_dynamic_output
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_allow_dynamic_output")
  (return-type "none")
  (parameters
    '("gboolean" "allow_dynamic_output")
  )
)

(define-method get_preset
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_preset")
  (return-type "const-gchar*")
)

(define-method get_preset_name
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_preset_name")
  (return-type "const-gchar*")
)

(define-method set_preset
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_preset")
  (return-type "none")
  (parameters
    '("const-gchar*" "preset")
  )
)

(define-method get_presence
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_presence")
  (return-type "guint")
)

(define-method set_presence
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_presence")
  (return-type "none")
  (parameters
    '("guint" "presence")
  )
)

(define-method set_preset_name
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_preset_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "preset_name")
  )
)

(define-method get_restriction
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_restriction")
  (return-type "GstCaps*")
)

(define-method set_restriction
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_restriction")
  (return-type "none")
  (parameters
    '("GstCaps*" "restriction")
  )
)

(define-method is_equal
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_is_equal")
  (return-type "gboolean")
  (parameters
    '("GstEncodingProfile*" "b")
  )
)

(define-method get_input_caps
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_input_caps")
  (return-type "GstCaps*")
)

(define-method get_type_nick
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_type_nick")
  (return-type "const-gchar*")
)

(define-method get_file_extension
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_file_extension")
  (return-type "const-gchar*")
)

(define-function gst_encoding_profile_find
  (c-name "gst_encoding_profile_find")
  (return-type "GstEncodingProfile*")
  (parameters
    '("const-gchar*" "targetname")
    '("const-gchar*" "profilename")
    '("const-gchar*" "category")
  )
)

(define-method is_enabled
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_is_enabled")
  (return-type "gboolean")
)

(define-method set_enabled
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method add_profile
  (of-object "GstEncodingContainerProfile")
  (c-name "gst_encoding_container_profile_add_profile")
  (return-type "gboolean")
  (parameters
    '("GstEncodingProfile*" "profile")
  )
)

(define-method contains_profile
  (of-object "GstEncodingContainerProfile")
  (c-name "gst_encoding_container_profile_contains_profile")
  (return-type "gboolean")
  (parameters
    '("GstEncodingProfile*" "profile")
  )
)

(define-method get_profiles
  (of-object "GstEncodingContainerProfile")
  (c-name "gst_encoding_container_profile_get_profiles")
  (return-type "const-GList*")
)

(define-function gst_encoding_container_profile_new
  (c-name "gst_encoding_container_profile_new")
  (is-constructor-of "GstEncodingContainerProfile")
  (return-type "GstEncodingContainerProfile*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "description")
    '("GstCaps*" "format")
    '("const-gchar*" "preset")
  )
)

(define-function gst_encoding_video_profile_new
  (c-name "gst_encoding_video_profile_new")
  (is-constructor-of "GstEncodingVideoProfile")
  (return-type "GstEncodingVideoProfile*")
  (parameters
    '("GstCaps*" "format")
    '("const-gchar*" "preset")
    '("GstCaps*" "restriction")
    '("guint" "presence")
  )
)

(define-function gst_encoding_audio_profile_new
  (c-name "gst_encoding_audio_profile_new")
  (is-constructor-of "GstEncodingAudioProfile")
  (return-type "GstEncodingAudioProfile*")
  (parameters
    '("GstCaps*" "format")
    '("const-gchar*" "preset")
    '("GstCaps*" "restriction")
    '("guint" "presence")
  )
)

(define-method get_pass
  (of-object "GstEncodingVideoProfile")
  (c-name "gst_encoding_video_profile_get_pass")
  (return-type "guint")
)

(define-method get_variableframerate
  (of-object "GstEncodingVideoProfile")
  (c-name "gst_encoding_video_profile_get_variableframerate")
  (return-type "gboolean")
)

(define-method set_pass
  (of-object "GstEncodingVideoProfile")
  (c-name "gst_encoding_video_profile_set_pass")
  (return-type "none")
  (parameters
    '("guint" "pass")
  )
)

(define-method set_variableframerate
  (of-object "GstEncodingVideoProfile")
  (c-name "gst_encoding_video_profile_set_variableframerate")
  (return-type "none")
  (parameters
    '("gboolean" "variableframerate")
  )
)

(define-function gst_encoding_profile_from_discoverer
  (c-name "gst_encoding_profile_from_discoverer")
  (return-type "GstEncodingProfile*")
  (parameters
    '("GstDiscovererInfo*" "info")
  )
)



;; From encoding-target.h

(define-function gst_encoding_target_get_type
  (c-name "gst_encoding_target_get_type")
  (return-type "GType")
)

(define-function gst_encoding_target_new
  (c-name "gst_encoding_target_new")
  (is-constructor-of "GstEncodingTarget")
  (return-type "GstEncodingTarget*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "category")
    '("const-gchar*" "description")
    '("const-GList*" "profiles")
  )
)

(define-method get_name
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_name")
  (return-type "const-gchar*")
)

(define-method get_category
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_category")
  (return-type "const-gchar*")
)

(define-method get_description
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_description")
  (return-type "const-gchar*")
)

(define-method get_profiles
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_profiles")
  (return-type "const-GList*")
)

(define-method get_profile
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_profile")
  (return-type "GstEncodingProfile*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method add_profile
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_add_profile")
  (return-type "gboolean")
  (parameters
    '("GstEncodingProfile*" "profile")
  )
)

(define-method save
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_save")
  (return-type "gboolean")
  (parameters
    '("GError**" "error")
  )
)

(define-method save_to_file
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_save_to_file")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "filepath")
    '("GError**" "error")
  )
)

(define-function gst_encoding_target_load
  (c-name "gst_encoding_target_load")
  (return-type "GstEncodingTarget*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "category")
    '("GError**" "error")
  )
)

(define-function gst_encoding_target_load_from_file
  (c-name "gst_encoding_target_load_from_file")
  (return-type "GstEncodingTarget*")
  (parameters
    '("const-gchar*" "filepath")
    '("GError**" "error")
  )
)

(define-function gst_encoding_list_available_categories
  (c-name "gst_encoding_list_available_categories")
  (return-type "GList*")
)

(define-function gst_encoding_list_all_targets
  (c-name "gst_encoding_list_all_targets")
  (return-type "GList*")
  (parameters
    '("const-gchar*" "categoryname")
  )
)



;; From gstaudiovisualizer.h

(define-function gst_audio_visualizer_get_type
  (c-name "gst_audio_visualizer_get_type")
  (return-type "GType")
)



;; From gstdiscoverer.h

(define-function gst_discoverer_stream_info_get_type
  (c-name "gst_discoverer_stream_info_get_type")
  (return-type "GType")
)

(define-method get_previous
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_previous")
  (return-type "GstDiscovererStreamInfo*")
)

(define-method get_next
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_next")
  (return-type "GstDiscovererStreamInfo*")
)

(define-method get_caps
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_caps")
  (return-type "GstCaps*")
)

(define-method get_tags
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_tags")
  (return-type "const-GstTagList*")
)

(define-method get_toc
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_toc")
  (return-type "const-GstToc*")
)

(define-method get_stream_id
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_stream_id")
  (return-type "const-gchar*")
)

(define-method get_misc
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_misc")
  (return-type "const-GstStructure*")
)

(define-method get_stream_type_nick
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_stream_type_nick")
  (return-type "const-gchar*")
)

(define-function gst_discoverer_container_info_get_type
  (c-name "gst_discoverer_container_info_get_type")
  (return-type "GType")
)

(define-method get_streams
  (of-object "GstDiscovererContainerInfo")
  (c-name "gst_discoverer_container_info_get_streams")
  (return-type "GList*")
)

(define-function gst_discoverer_audio_info_get_type
  (c-name "gst_discoverer_audio_info_get_type")
  (return-type "GType")
)

(define-method get_channels
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_channels")
  (return-type "guint")
)

(define-method get_sample_rate
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_sample_rate")
  (return-type "guint")
)

(define-method get_depth
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_depth")
  (return-type "guint")
)

(define-method get_bitrate
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_bitrate")
  (return-type "guint")
)

(define-method get_max_bitrate
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_max_bitrate")
  (return-type "guint")
)

(define-method get_language
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_language")
  (return-type "const-gchar*")
)

(define-function gst_discoverer_video_info_get_type
  (c-name "gst_discoverer_video_info_get_type")
  (return-type "GType")
)

(define-method get_width
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_width")
  (return-type "guint")
)

(define-method get_height
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_height")
  (return-type "guint")
)

(define-method get_depth
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_depth")
  (return-type "guint")
)

(define-method get_framerate_num
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_framerate_num")
  (return-type "guint")
)

(define-method get_framerate_denom
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_framerate_denom")
  (return-type "guint")
)

(define-method get_par_num
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_par_num")
  (return-type "guint")
)

(define-method get_par_denom
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_par_denom")
  (return-type "guint")
)

(define-method is_interlaced
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_is_interlaced")
  (return-type "gboolean")
)

(define-method get_bitrate
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_bitrate")
  (return-type "guint")
)

(define-method get_max_bitrate
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_max_bitrate")
  (return-type "guint")
)

(define-method is_image
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_is_image")
  (return-type "gboolean")
)

(define-function gst_discoverer_subtitle_info_get_type
  (c-name "gst_discoverer_subtitle_info_get_type")
  (return-type "GType")
)

(define-method get_language
  (of-object "GstDiscovererSubtitleInfo")
  (c-name "gst_discoverer_subtitle_info_get_language")
  (return-type "const-gchar*")
)

(define-function gst_discoverer_info_get_type
  (c-name "gst_discoverer_info_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_copy")
  (return-type "GstDiscovererInfo*")
)

(define-method get_uri
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_uri")
  (return-type "const-gchar*")
)

(define-method get_result
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_result")
  (return-type "GstDiscovererResult")
)

(define-method get_stream_info
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_stream_info")
  (return-type "GstDiscovererStreamInfo*")
)

(define-method get_stream_list
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_stream_list")
  (return-type "GList*")
)

(define-method get_duration
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_duration")
  (return-type "GstClockTime")
)

(define-method get_seekable
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_seekable")
  (return-type "gboolean")
)

(define-method get_misc
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_misc")
  (return-type "const-GstStructure*")
)

(define-method get_tags
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_tags")
  (return-type "const-GstTagList*")
)

(define-method get_toc
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_toc")
  (return-type "const-GstToc*")
)

(define-method get_missing_elements_installer_details
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_missing_elements_installer_details")
  (return-type "const-gchar**")
)

(define-method get_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_streams")
  (return-type "GList*")
  (parameters
    '("GType" "streamtype")
  )
)

(define-method get_audio_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_audio_streams")
  (return-type "GList*")
)

(define-method get_video_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_video_streams")
  (return-type "GList*")
)

(define-method get_subtitle_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_subtitle_streams")
  (return-type "GList*")
)

(define-method get_container_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_container_streams")
  (return-type "GList*")
)

(define-method to_variant
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_to_variant")
  (return-type "GVariant*")
  (parameters
    '("GstDiscovererSerializeFlags" "flags")
  )
)

(define-function gst_discoverer_info_from_variant
  (c-name "gst_discoverer_info_from_variant")
  (return-type "GstDiscovererInfo*")
  (parameters
    '("GVariant*" "variant")
  )
)

(define-function gst_discoverer_stream_info_list_free
  (c-name "gst_discoverer_stream_info_list_free")
  (return-type "none")
  (parameters
    '("GList*" "infos")
  )
)

(define-function gst_discoverer_get_type
  (c-name "gst_discoverer_get_type")
  (return-type "GType")
)

(define-function gst_discoverer_new
  (c-name "gst_discoverer_new")
  (is-constructor-of "GstDiscoverer")
  (return-type "GstDiscoverer*")
  (parameters
    '("GstClockTime" "timeout")
    '("GError**" "err")
  )
)

(define-method start
  (of-object "GstDiscoverer")
  (c-name "gst_discoverer_start")
  (return-type "none")
)

(define-method stop
  (of-object "GstDiscoverer")
  (c-name "gst_discoverer_stop")
  (return-type "none")
)

(define-method discover_uri_async
  (of-object "GstDiscoverer")
  (c-name "gst_discoverer_discover_uri_async")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method discover_uri
  (of-object "GstDiscoverer")
  (c-name "gst_discoverer_discover_uri")
  (return-type "GstDiscovererInfo*")
  (parameters
    '("const-gchar*" "uri")
    '("GError**" "err")
  )
)



;; From gstpluginsbaseversion.h

(define-function gst_plugins_base_version
  (c-name "gst_plugins_base_version")
  (return-type "none")
  (parameters
    '("guint*" "major")
    '("guint*" "minor")
    '("guint*" "micro")
    '("guint*" "nano")
  )
)

(define-function gst_plugins_base_version_string
  (c-name "gst_plugins_base_version_string")
  (return-type "gchar*")
)



;; From install-plugins.h

(define-function gst_install_plugins_context_new
  (c-name "gst_install_plugins_context_new")
  (is-constructor-of "GstInstallPluginsContext")
  (return-type "GstInstallPluginsContext*")
)

(define-method free
  (of-object "GstInstallPluginsContext")
  (c-name "gst_install_plugins_context_free")
  (return-type "none")
)

(define-method set_confirm_search
  (of-object "GstInstallPluginsContext")
  (c-name "gst_install_plugins_context_set_confirm_search")
  (return-type "none")
  (parameters
    '("gboolean" "confirm_search")
  )
)

(define-method set_desktop_id
  (of-object "GstInstallPluginsContext")
  (c-name "gst_install_plugins_context_set_desktop_id")
  (return-type "none")
  (parameters
    '("const-gchar*" "desktop_id")
  )
)

(define-method set_startup_notification_id
  (of-object "GstInstallPluginsContext")
  (c-name "gst_install_plugins_context_set_startup_notification_id")
  (return-type "none")
  (parameters
    '("const-gchar*" "startup_id")
  )
)

(define-method set_xid
  (of-object "GstInstallPluginsContext")
  (c-name "gst_install_plugins_context_set_xid")
  (return-type "none")
  (parameters
    '("guint" "xid")
  )
)

(define-function gst_install_plugins_context_get_type
  (c-name "gst_install_plugins_context_get_type")
  (return-type "GType")
)

(define-function gst_install_plugins_async
  (c-name "gst_install_plugins_async")
  (return-type "GstInstallPluginsReturn")
  (parameters
    '("const-gchar*-const*" "details")
    '("GstInstallPluginsContext*" "ctx")
    '("GstInstallPluginsResultFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-function gst_install_plugins_sync
  (c-name "gst_install_plugins_sync")
  (return-type "GstInstallPluginsReturn")
  (parameters
    '("const-gchar*-const*" "details")
    '("GstInstallPluginsContext*" "ctx")
  )
)

(define-method get_name
  (of-object "GstInstallPluginsReturn")
  (c-name "gst_install_plugins_return_get_name")
  (return-type "const-gchar*")
)

(define-function gst_install_plugins_installation_in_progress
  (c-name "gst_install_plugins_installation_in_progress")
  (return-type "gboolean")
)

(define-function gst_install_plugins_supported
  (c-name "gst_install_plugins_supported")
  (return-type "gboolean")
)



;; From missing-plugins.h

(define-function gst_missing_uri_source_message_new
  (c-name "gst_missing_uri_source_message_new")
  (is-constructor-of "GstMissingUriSourceMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "protocol")
  )
)

(define-function gst_missing_uri_sink_message_new
  (c-name "gst_missing_uri_sink_message_new")
  (is-constructor-of "GstMissingUriSinkMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "protocol")
  )
)

(define-function gst_missing_element_message_new
  (c-name "gst_missing_element_message_new")
  (is-constructor-of "GstMissingElementMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "factory_name")
  )
)

(define-function gst_missing_decoder_message_new
  (c-name "gst_missing_decoder_message_new")
  (is-constructor-of "GstMissingDecoderMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-GstCaps*" "decode_caps")
  )
)

(define-function gst_missing_encoder_message_new
  (c-name "gst_missing_encoder_message_new")
  (is-constructor-of "GstMissingEncoderMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-GstCaps*" "encode_caps")
  )
)

(define-function gst_missing_plugin_message_get_installer_detail
  (c-name "gst_missing_plugin_message_get_installer_detail")
  (return-type "gchar*")
  (parameters
    '("GstMessage*" "msg")
  )
)

(define-function gst_missing_plugin_message_get_description
  (c-name "gst_missing_plugin_message_get_description")
  (return-type "gchar*")
  (parameters
    '("GstMessage*" "msg")
  )
)

(define-function gst_is_missing_plugin_message
  (c-name "gst_is_missing_plugin_message")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "msg")
  )
)

(define-function gst_missing_uri_source_installer_detail_new
  (c-name "gst_missing_uri_source_installer_detail_new")
  (is-constructor-of "GstMissingUriSourceInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_missing_uri_sink_installer_detail_new
  (c-name "gst_missing_uri_sink_installer_detail_new")
  (is-constructor-of "GstMissingUriSinkInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_missing_element_installer_detail_new
  (c-name "gst_missing_element_installer_detail_new")
  (is-constructor-of "GstMissingElementInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "factory_name")
  )
)

(define-function gst_missing_decoder_installer_detail_new
  (c-name "gst_missing_decoder_installer_detail_new")
  (is-constructor-of "GstMissingDecoderInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "decode_caps")
  )
)

(define-function gst_missing_encoder_installer_detail_new
  (c-name "gst_missing_encoder_installer_detail_new")
  (is-constructor-of "GstMissingEncoderInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "encode_caps")
  )
)



;; From pbutils-enumtypes.h

(define-function gst_install_plugins_return_get_type
  (c-name "gst_install_plugins_return_get_type")
  (return-type "GType")
)

(define-function gst_discoverer_result_get_type
  (c-name "gst_discoverer_result_get_type")
  (return-type "GType")
)

(define-function gst_discoverer_serialize_flags_get_type
  (c-name "gst_discoverer_serialize_flags_get_type")
  (return-type "GType")
)

(define-function gst_audio_visualizer_shader_get_type
  (c-name "gst_audio_visualizer_shader_get_type")
  (return-type "GType")
)



;; From pbutils.h

(define-function gst_pb_utils_init
  (c-name "gst_pb_utils_init")
  (return-type "none")
)



;; From pbutils-private.h

(define-function copy_and_clean_caps
  (c-name "copy_and_clean_caps")
  (return-type "GstCaps*")
  (parameters
    '("const-GstCaps*" "caps")
  )
)



;; From riff.h



;; From riff-ids.h



;; From riff-media.h

(define-function gst_riff_create_video_caps
  (c-name "gst_riff_create_video_caps")
  (return-type "GstCaps*")
  (parameters
    '("guint32" "codec_fcc")
    '("gst_riff_strh*" "strh")
    '("gst_riff_strf_vids*" "strf")
    '("GstBuffer*" "strf_data")
    '("GstBuffer*" "strd_data")
    '("char**" "codec_name")
  )
)

(define-function gst_riff_create_audio_caps
  (c-name "gst_riff_create_audio_caps")
  (return-type "GstCaps*")
  (parameters
    '("guint16" "codec_id")
    '("gst_riff_strh*" "strh")
    '("gst_riff_strf_auds*" "strf")
    '("GstBuffer*" "strf_data")
    '("GstBuffer*" "strd_data")
    '("char**" "codec_name")
    '("gint" "channel_reorder_map[18]")
  )
)

(define-function gst_riff_create_iavs_caps
  (c-name "gst_riff_create_iavs_caps")
  (return-type "GstCaps*")
  (parameters
    '("guint32" "codec_fcc")
    '("gst_riff_strh*" "strh")
    '("gst_riff_strf_iavs*" "strf")
    '("GstBuffer*" "strf_data")
    '("GstBuffer*" "strd_data")
    '("char**" "codec_name")
  )
)

(define-function gst_riff_create_video_template_caps
  (c-name "gst_riff_create_video_template_caps")
  (return-type "GstCaps*")
)

(define-function gst_riff_create_audio_template_caps
  (c-name "gst_riff_create_audio_template_caps")
  (return-type "GstCaps*")
)

(define-function gst_riff_create_iavs_template_caps
  (c-name "gst_riff_create_iavs_template_caps")
  (return-type "GstCaps*")
)



;; From riff-read.h

(define-function gst_riff_read_chunk
  (c-name "gst_riff_read_chunk")
  (return-type "GstFlowReturn")
  (parameters
    '("GstElement*" "element")
    '("GstPad*" "pad")
    '("guint64*" "offset")
    '("guint32*" "tag")
    '("GstBuffer**" "chunk_data")
  )
)

(define-function gst_riff_parse_chunk
  (c-name "gst_riff_parse_chunk")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("guint*" "offset")
    '("guint32*" "fourcc")
    '("GstBuffer**" "chunk_data")
  )
)

(define-function gst_riff_parse_file_header
  (c-name "gst_riff_parse_file_header")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("guint32*" "doctype")
  )
)

(define-function gst_riff_parse_strh
  (c-name "gst_riff_parse_strh")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("gst_riff_strh**" "strh")
  )
)

(define-function gst_riff_parse_strf_vids
  (c-name "gst_riff_parse_strf_vids")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("gst_riff_strf_vids**" "strf")
    '("GstBuffer**" "data")
  )
)

(define-function gst_riff_parse_strf_auds
  (c-name "gst_riff_parse_strf_auds")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("gst_riff_strf_auds**" "strf")
    '("GstBuffer**" "data")
  )
)

(define-function gst_riff_parse_strf_iavs
  (c-name "gst_riff_parse_strf_iavs")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("gst_riff_strf_iavs**" "strf")
    '("GstBuffer**" "data")
  )
)

(define-function gst_riff_parse_info
  (c-name "gst_riff_parse_info")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("GstTagList**" "taglist")
  )
)

(define-function gst_riff_init
  (c-name "gst_riff_init")
  (return-type "none")
)



;; From gstrtcpbuffer.h

(define-function gst_rtcp_buffer_new_take_data
  (c-name "gst_rtcp_buffer_new_take_data")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("guint" "len")
  )
)

(define-function gst_rtcp_buffer_new_copy_data
  (c-name "gst_rtcp_buffer_new_copy_data")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("guint" "len")
  )
)

(define-function gst_rtcp_buffer_validate_data
  (c-name "gst_rtcp_buffer_validate_data")
  (return-type "gboolean")
  (parameters
    '("guint8*" "data")
    '("guint" "len")
  )
)

(define-function gst_rtcp_buffer_validate
  (c-name "gst_rtcp_buffer_validate")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtcp_buffer_validate_data_reduced
  (c-name "gst_rtcp_buffer_validate_data_reduced")
  (return-type "gboolean")
  (parameters
    '("guint8*" "data")
    '("guint" "len")
  )
)

(define-function gst_rtcp_buffer_validate_reduced
  (c-name "gst_rtcp_buffer_validate_reduced")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtcp_buffer_new
  (c-name "gst_rtcp_buffer_new")
  (is-constructor-of "GstRtcpBuffer")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "mtu")
  )
)

(define-function gst_rtcp_buffer_map
  (c-name "gst_rtcp_buffer_map")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstMapFlags" "flags")
    '("GstRTCPBuffer*" "rtcp")
  )
)

(define-method unmap
  (of-object "GstRTCPBuffer")
  (c-name "gst_rtcp_buffer_unmap")
  (return-type "gboolean")
)

(define-method get_packet_count
  (of-object "GstRTCPBuffer")
  (c-name "gst_rtcp_buffer_get_packet_count")
  (return-type "guint")
)

(define-method get_first_packet
  (of-object "GstRTCPBuffer")
  (c-name "gst_rtcp_buffer_get_first_packet")
  (return-type "gboolean")
  (parameters
    '("GstRTCPPacket*" "packet")
  )
)

(define-method move_to_next
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_move_to_next")
  (return-type "gboolean")
)

(define-method add_packet
  (of-object "GstRTCPBuffer")
  (c-name "gst_rtcp_buffer_add_packet")
  (return-type "gboolean")
  (parameters
    '("GstRTCPType" "type")
    '("GstRTCPPacket*" "packet")
  )
)

(define-method remove
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_remove")
  (return-type "gboolean")
)

(define-method get_padding
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_padding")
  (return-type "gboolean")
)

(define-method get_count
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_count")
  (return-type "guint8")
)

(define-method get_type
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_type")
  (return-type "GstRTCPType")
)

(define-method get_length
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_length")
  (return-type "guint16")
)

(define-method sr_get_sender_info
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sr_get_sender_info")
  (return-type "none")
  (parameters
    '("guint32*" "ssrc")
    '("guint64*" "ntptime")
    '("guint32*" "rtptime")
    '("guint32*" "packet_count")
    '("guint32*" "octet_count")
  )
)

(define-method sr_set_sender_info
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sr_set_sender_info")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
    '("guint64" "ntptime")
    '("guint32" "rtptime")
    '("guint32" "packet_count")
    '("guint32" "octet_count")
  )
)

(define-method rr_get_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_rr_get_ssrc")
  (return-type "guint32")
)

(define-method rr_set_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_rr_set_ssrc")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method get_rb_count
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_rb_count")
  (return-type "guint")
)

(define-method get_rb
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_rb")
  (return-type "none")
  (parameters
    '("guint" "nth")
    '("guint32*" "ssrc")
    '("guint8*" "fractionlost")
    '("gint32*" "packetslost")
    '("guint32*" "exthighestseq")
    '("guint32*" "jitter")
    '("guint32*" "lsr")
    '("guint32*" "dlsr")
  )
)

(define-method add_rb
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_add_rb")
  (return-type "gboolean")
  (parameters
    '("guint32" "ssrc")
    '("guint8" "fractionlost")
    '("gint32" "packetslost")
    '("guint32" "exthighestseq")
    '("guint32" "jitter")
    '("guint32" "lsr")
    '("guint32" "dlsr")
  )
)

(define-method set_rb
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_set_rb")
  (return-type "none")
  (parameters
    '("guint" "nth")
    '("guint32" "ssrc")
    '("guint8" "fractionlost")
    '("gint32" "packetslost")
    '("guint32" "exthighestseq")
    '("guint32" "jitter")
    '("guint32" "lsr")
    '("guint32" "dlsr")
  )
)

(define-method sdes_get_item_count
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_get_item_count")
  (return-type "guint")
)

(define-method sdes_first_item
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_first_item")
  (return-type "gboolean")
)

(define-method sdes_next_item
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_next_item")
  (return-type "gboolean")
)

(define-method sdes_get_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_get_ssrc")
  (return-type "guint32")
)

(define-method sdes_first_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_first_entry")
  (return-type "gboolean")
)

(define-method sdes_next_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_next_entry")
  (return-type "gboolean")
)

(define-method sdes_get_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_get_entry")
  (return-type "gboolean")
  (parameters
    '("GstRTCPSDESType*" "type")
    '("guint8*" "len")
    '("guint8**" "data")
  )
)

(define-method sdes_copy_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_copy_entry")
  (return-type "gboolean")
  (parameters
    '("GstRTCPSDESType*" "type")
    '("guint8*" "len")
    '("guint8**" "data")
  )
)

(define-method sdes_add_item
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_add_item")
  (return-type "gboolean")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method sdes_add_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_add_entry")
  (return-type "gboolean")
  (parameters
    '("GstRTCPSDESType" "type")
    '("guint8" "len")
    '("const-guint8*" "data")
  )
)

(define-method bye_get_ssrc_count
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_get_ssrc_count")
  (return-type "guint")
)

(define-method bye_get_nth_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_get_nth_ssrc")
  (return-type "guint32")
  (parameters
    '("guint" "nth")
  )
)

(define-method bye_add_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_add_ssrc")
  (return-type "gboolean")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method bye_add_ssrcs
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_add_ssrcs")
  (return-type "gboolean")
  (parameters
    '("guint32*" "ssrc")
    '("guint" "len")
  )
)

(define-method bye_get_reason_len
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_get_reason_len")
  (return-type "guint8")
)

(define-method bye_get_reason
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_get_reason")
  (return-type "gchar*")
)

(define-method bye_set_reason
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_set_reason")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "reason")
  )
)

(define-method fb_get_sender_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_sender_ssrc")
  (return-type "guint32")
)

(define-method fb_set_sender_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_set_sender_ssrc")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method fb_get_media_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_media_ssrc")
  (return-type "guint32")
)

(define-method fb_set_media_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_set_media_ssrc")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method fb_get_type
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_type")
  (return-type "GstRTCPFBType")
)

(define-method fb_set_type
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_set_type")
  (return-type "none")
  (parameters
    '("GstRTCPFBType" "type")
  )
)

(define-method fb_get_fci_length
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_fci_length")
  (return-type "guint16")
)

(define-method fb_set_fci_length
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_set_fci_length")
  (return-type "gboolean")
  (parameters
    '("guint16" "wordlen")
  )
)

(define-method fb_get_fci
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_fci")
  (return-type "guint8*")
)

(define-function gst_rtcp_ntp_to_unix
  (c-name "gst_rtcp_ntp_to_unix")
  (return-type "guint64")
  (parameters
    '("guint64" "ntptime")
  )
)

(define-function gst_rtcp_unix_to_ntp
  (c-name "gst_rtcp_unix_to_ntp")
  (return-type "guint64")
  (parameters
    '("guint64" "unixtime")
  )
)

(define-method to_name
  (of-object "GstRTCPSDESType")
  (c-name "gst_rtcp_sdes_type_to_name")
  (return-type "const-gchar*")
)

(define-function gst_rtcp_sdes_name_to_type
  (c-name "gst_rtcp_sdes_name_to_type")
  (return-type "GstRTCPSDESType")
  (parameters
    '("const-gchar*" "name")
  )
)



;; From gstrtpbaseaudiopayload.h

(define-function gst_rtp_base_audio_payload_get_type
  (c-name "gst_rtp_base_audio_payload_get_type")
  (return-type "GType")
)

(define-method set_frame_based
  (of-object "GstRTPBaseAudioPayload")
  (c-name "gst_rtp_base_audio_payload_set_frame_based")
  (return-type "none")
)

(define-method set_frame_options
  (of-object "GstRTPBaseAudioPayload")
  (c-name "gst_rtp_base_audio_payload_set_frame_options")
  (return-type "none")
  (parameters
    '("gint" "frame_duration")
    '("gint" "frame_size")
  )
)

(define-method set_sample_based
  (of-object "GstRTPBaseAudioPayload")
  (c-name "gst_rtp_base_audio_payload_set_sample_based")
  (return-type "none")
)

(define-method set_sample_options
  (of-object "GstRTPBaseAudioPayload")
  (c-name "gst_rtp_base_audio_payload_set_sample_options")
  (return-type "none")
  (parameters
    '("gint" "sample_size")
  )
)

(define-method set_samplebits_options
  (of-object "GstRTPBaseAudioPayload")
  (c-name "gst_rtp_base_audio_payload_set_samplebits_options")
  (return-type "none")
  (parameters
    '("gint" "sample_size")
  )
)

(define-method get_adapter
  (of-object "GstRTPBaseAudioPayload")
  (c-name "gst_rtp_base_audio_payload_get_adapter")
  (return-type "GstAdapter*")
)

(define-method push
  (of-object "GstRTPBaseAudioPayload")
  (c-name "gst_rtp_base_audio_payload_push")
  (return-type "GstFlowReturn")
  (parameters
    '("const-guint8*" "data")
    '("guint" "payload_len")
    '("GstClockTime" "timestamp")
  )
)

(define-method flush
  (of-object "GstRTPBaseAudioPayload")
  (c-name "gst_rtp_base_audio_payload_flush")
  (return-type "GstFlowReturn")
  (parameters
    '("guint" "payload_len")
    '("GstClockTime" "timestamp")
  )
)



;; From gstrtpbasedepayload.h

(define-function gst_rtp_base_depayload_get_type
  (c-name "gst_rtp_base_depayload_get_type")
  (return-type "GType")
)

(define-method push
  (of-object "GstRTPBaseDepayload")
  (c-name "gst_rtp_base_depayload_push")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "out_buf")
  )
)

(define-method push_list
  (of-object "GstRTPBaseDepayload")
  (c-name "gst_rtp_base_depayload_push_list")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBufferList*" "out_list")
  )
)



;; From gstrtpbasepayload.h

(define-function gst_rtp_base_payload_get_type
  (c-name "gst_rtp_base_payload_get_type")
  (return-type "GType")
)

(define-method set_options
  (of-object "GstRTPBasePayload")
  (c-name "gst_rtp_base_payload_set_options")
  (return-type "none")
  (parameters
    '("const-gchar*" "media")
    '("gboolean" "dynamic")
    '("const-gchar*" "encoding_name")
    '("guint32" "clock_rate")
  )
)

(define-method set_outcaps
  (of-object "GstRTPBasePayload")
  (c-name "gst_rtp_base_payload_set_outcaps")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
  )
  (varargs #t)
)

(define-method is_filled
  (of-object "GstRTPBasePayload")
  (c-name "gst_rtp_base_payload_is_filled")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
    '("GstClockTime" "duration")
  )
)

(define-method push
  (of-object "GstRTPBasePayload")
  (c-name "gst_rtp_base_payload_push")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method push_list
  (of-object "GstRTPBasePayload")
  (c-name "gst_rtp_base_payload_push_list")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBufferList*" "list")
  )
)



;; From gstrtpbuffer.h

(define-function gst_rtp_buffer_allocate_data
  (c-name "gst_rtp_buffer_allocate_data")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint" "payload_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_new_take_data
  (c-name "gst_rtp_buffer_new_take_data")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("gsize" "len")
  )
)

(define-function gst_rtp_buffer_new_copy_data
  (c-name "gst_rtp_buffer_new_copy_data")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("gsize" "len")
  )
)

(define-function gst_rtp_buffer_new_allocate
  (c-name "gst_rtp_buffer_new_allocate")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "payload_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_new_allocate_len
  (c-name "gst_rtp_buffer_new_allocate_len")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "packet_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_calc_header_len
  (c-name "gst_rtp_buffer_calc_header_len")
  (return-type "guint")
  (parameters
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_calc_packet_len
  (c-name "gst_rtp_buffer_calc_packet_len")
  (return-type "guint")
  (parameters
    '("guint" "payload_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_calc_payload_len
  (c-name "gst_rtp_buffer_calc_payload_len")
  (return-type "guint")
  (parameters
    '("guint" "packet_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_map
  (c-name "gst_rtp_buffer_map")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstMapFlags" "flags")
    '("GstRTPBuffer*" "rtp")
  )
)

(define-method unmap
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_unmap")
  (return-type "none")
)

(define-method set_packet_len
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_packet_len")
  (return-type "none")
  (parameters
    '("guint" "len")
  )
)

(define-method get_packet_len
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_packet_len")
  (return-type "guint")
)

(define-method get_header_len
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_header_len")
  (return-type "guint")
)

(define-method get_version
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_version")
  (return-type "guint8")
)

(define-method set_version
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_version")
  (return-type "none")
  (parameters
    '("guint8" "version")
  )
)

(define-method get_padding
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_padding")
  (return-type "gboolean")
)

(define-method set_padding
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_padding")
  (return-type "none")
  (parameters
    '("gboolean" "padding")
  )
)

(define-method pad_to
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_pad_to")
  (return-type "none")
  (parameters
    '("guint" "len")
  )
)

(define-method get_extension
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_extension")
  (return-type "gboolean")
)

(define-method set_extension
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_extension")
  (return-type "none")
  (parameters
    '("gboolean" "extension")
  )
)

(define-method get_extension_data
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_extension_data")
  (return-type "gboolean")
  (parameters
    '("guint16*" "bits")
    '("gpointer*" "data")
    '("guint*" "wordlen")
  )
)

(define-method get_extension_bytes
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_extension_bytes")
  (return-type "GBytes*")
  (parameters
    '("guint16*" "bits")
  )
)

(define-method set_extension_data
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_extension_data")
  (return-type "gboolean")
  (parameters
    '("guint16" "bits")
    '("guint16" "length")
  )
)

(define-method get_ssrc
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_ssrc")
  (return-type "guint32")
)

(define-method set_ssrc
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_ssrc")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method get_csrc_count
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_csrc_count")
  (return-type "guint8")
)

(define-method get_csrc
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_csrc")
  (return-type "guint32")
  (parameters
    '("guint8" "idx")
  )
)

(define-method set_csrc
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_csrc")
  (return-type "none")
  (parameters
    '("guint8" "idx")
    '("guint32" "csrc")
  )
)

(define-method get_marker
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_marker")
  (return-type "gboolean")
)

(define-method set_marker
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_marker")
  (return-type "none")
  (parameters
    '("gboolean" "marker")
  )
)

(define-method get_payload_type
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_payload_type")
  (return-type "guint8")
)

(define-method set_payload_type
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_payload_type")
  (return-type "none")
  (parameters
    '("guint8" "payload_type")
  )
)

(define-method get_seq
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_seq")
  (return-type "guint16")
)

(define-method set_seq
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_seq")
  (return-type "none")
  (parameters
    '("guint16" "seq")
  )
)

(define-method get_timestamp
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_timestamp")
  (return-type "guint32")
)

(define-method set_timestamp
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_set_timestamp")
  (return-type "none")
  (parameters
    '("guint32" "timestamp")
  )
)

(define-method get_payload_buffer
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_payload_buffer")
  (return-type "GstBuffer*")
)

(define-method get_payload_subbuffer
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_payload_subbuffer")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "offset")
    '("guint" "len")
  )
)

(define-method get_payload_len
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_payload_len")
  (return-type "guint")
)

(define-method get_payload
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_payload")
  (return-type "gpointer")
)

(define-method get_payload_bytes
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_payload_bytes")
  (return-type "GBytes*")
)

(define-function gst_rtp_buffer_default_clock_rate
  (c-name "gst_rtp_buffer_default_clock_rate")
  (return-type "guint32")
  (parameters
    '("guint8" "payload_type")
  )
)

(define-function gst_rtp_buffer_compare_seqnum
  (c-name "gst_rtp_buffer_compare_seqnum")
  (return-type "gint")
  (parameters
    '("guint16" "seqnum1")
    '("guint16" "seqnum2")
  )
)

(define-function gst_rtp_buffer_ext_timestamp
  (c-name "gst_rtp_buffer_ext_timestamp")
  (return-type "guint64")
  (parameters
    '("guint64*" "exttimestamp")
    '("guint32" "timestamp")
  )
)

(define-method get_extension_onebyte_header
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_extension_onebyte_header")
  (return-type "gboolean")
  (parameters
    '("guint8" "id")
    '("guint" "nth")
    '("gpointer*" "data")
    '("guint*" "size")
  )
)

(define-method get_extension_twobytes_header
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_get_extension_twobytes_header")
  (return-type "gboolean")
  (parameters
    '("guint8*" "appbits")
    '("guint8" "id")
    '("guint" "nth")
    '("gpointer*" "data")
    '("guint*" "size")
  )
)

(define-method add_extension_onebyte_header
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_add_extension_onebyte_header")
  (return-type "gboolean")
  (parameters
    '("guint8" "id")
    '("gpointer" "data")
    '("guint" "size")
  )
)

(define-method add_extension_twobytes_header
  (of-object "GstRTPBuffer")
  (c-name "gst_rtp_buffer_add_extension_twobytes_header")
  (return-type "gboolean")
  (parameters
    '("guint8" "appbits")
    '("guint8" "id")
    '("gpointer" "data")
    '("guint" "size")
  )
)



;; From gstrtpdefs.h



;; From gstrtp-enumtypes.h

(define-function gst_rtp_profile_get_type
  (c-name "gst_rtp_profile_get_type")
  (return-type "GType")
)

(define-function gst_rtp_buffer_map_flags_get_type
  (c-name "gst_rtp_buffer_map_flags_get_type")
  (return-type "GType")
)

(define-function gst_rtcp_type_get_type
  (c-name "gst_rtcp_type_get_type")
  (return-type "GType")
)

(define-function gst_rtcpfb_type_get_type
  (c-name "gst_rtcpfb_type_get_type")
  (return-type "GType")
)

(define-function gst_rtcpsdes_type_get_type
  (c-name "gst_rtcpsdes_type_get_type")
  (return-type "GType")
)

(define-function gst_rtp_payload_get_type
  (c-name "gst_rtp_payload_get_type")
  (return-type "GType")
)



;; From gstrtphdrext.h

(define-function gst_rtp_hdrext_set_ntp_64
  (c-name "gst_rtp_hdrext_set_ntp_64")
  (return-type "gboolean")
  (parameters
    '("gpointer" "data")
    '("guint" "size")
    '("guint64" "ntptime")
  )
)

(define-function gst_rtp_hdrext_get_ntp_64
  (c-name "gst_rtp_hdrext_get_ntp_64")
  (return-type "gboolean")
  (parameters
    '("gpointer" "data")
    '("guint" "size")
    '("guint64*" "ntptime")
  )
)

(define-function gst_rtp_hdrext_set_ntp_56
  (c-name "gst_rtp_hdrext_set_ntp_56")
  (return-type "gboolean")
  (parameters
    '("gpointer" "data")
    '("guint" "size")
    '("guint64" "ntptime")
  )
)

(define-function gst_rtp_hdrext_get_ntp_56
  (c-name "gst_rtp_hdrext_get_ntp_56")
  (return-type "gboolean")
  (parameters
    '("gpointer" "data")
    '("guint" "size")
    '("guint64*" "ntptime")
  )
)



;; From gstrtppayloads.h

(define-function gst_rtp_payload_info_for_pt
  (c-name "gst_rtp_payload_info_for_pt")
  (return-type "const-GstRTPPayloadInfo*")
  (parameters
    '("guint8" "payload_type")
  )
)

(define-function gst_rtp_payload_info_for_name
  (c-name "gst_rtp_payload_info_for_name")
  (return-type "const-GstRTPPayloadInfo*")
  (parameters
    '("const-gchar*" "media")
    '("const-gchar*" "encoding_name")
  )
)



;; From rtp.h



;; From gstrtspconnection.h

(define-function gst_rtsp_connection_create
  (c-name "gst_rtsp_connection_create")
  (return-type "GstRTSPResult")
  (parameters
    '("const-GstRTSPUrl*" "url")
    '("GstRTSPConnection**" "conn")
  )
)

(define-function gst_rtsp_connection_create_from_socket
  (c-name "gst_rtsp_connection_create_from_socket")
  (return-type "GstRTSPResult")
  (parameters
    '("GSocket*" "socket")
    '("const-gchar*" "ip")
    '("guint16" "port")
    '("const-gchar*" "initial_buffer")
    '("GstRTSPConnection**" "conn")
  )
)

(define-function gst_rtsp_connection_accept
  (c-name "gst_rtsp_connection_accept")
  (return-type "GstRTSPResult")
  (parameters
    '("GSocket*" "socket")
    '("GstRTSPConnection**" "conn")
    '("GCancellable*" "cancellable")
  )
)

(define-method connect
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_connect")
  (return-type "GstRTSPResult")
  (parameters
    '("GTimeVal*" "timeout")
  )
)

(define-method connect_with_response
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_connect_with_response")
  (return-type "GstRTSPResult")
  (parameters
    '("GTimeVal*" "timeout")
    '("GstRTSPMessage*" "response")
  )
)

(define-method close
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_close")
  (return-type "GstRTSPResult")
)

(define-method free
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_free")
  (return-type "GstRTSPResult")
)

(define-method get_tls
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_tls")
  (return-type "GTlsConnection*")
  (parameters
    '("GError**" "error")
  )
)

(define-method set_tls_validation_flags
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_tls_validation_flags")
  (return-type "gboolean")
  (parameters
    '("GTlsCertificateFlags" "flags")
  )
)

(define-method get_tls_validation_flags
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_tls_validation_flags")
  (return-type "GTlsCertificateFlags")
)

(define-method set_tls_database
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_tls_database")
  (return-type "none")
  (parameters
    '("GTlsDatabase*" "database")
  )
)

(define-method get_tls_database
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_tls_database")
  (return-type "GTlsDatabase*")
)

(define-method set_tls_interaction
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_tls_interaction")
  (return-type "none")
  (parameters
    '("GTlsInteraction*" "interaction")
  )
)

(define-method get_tls_interaction
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_tls_interaction")
  (return-type "GTlsInteraction*")
)

(define-method read
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_read")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8*" "data")
    '("guint" "size")
    '("GTimeVal*" "timeout")
  )
)

(define-method write
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_write")
  (return-type "GstRTSPResult")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
    '("GTimeVal*" "timeout")
  )
)

(define-method send
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_send")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "message")
    '("GTimeVal*" "timeout")
  )
)

(define-method receive
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_receive")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "message")
    '("GTimeVal*" "timeout")
  )
)

(define-method poll
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_poll")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPEvent" "events")
    '("GstRTSPEvent*" "revents")
    '("GTimeVal*" "timeout")
  )
)

(define-method next_timeout
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_next_timeout")
  (return-type "GstRTSPResult")
  (parameters
    '("GTimeVal*" "timeout")
  )
)

(define-method reset_timeout
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_reset_timeout")
  (return-type "GstRTSPResult")
)

(define-method flush
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_flush")
  (return-type "GstRTSPResult")
  (parameters
    '("gboolean" "flush")
  )
)

(define-method set_proxy
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_proxy")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "host")
    '("guint" "port")
  )
)

(define-method set_auth
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_auth")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPAuthMethod" "method")
    '("const-gchar*" "user")
    '("const-gchar*" "pass")
  )
)

(define-method set_auth_param
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_auth_param")
  (return-type "none")
  (parameters
    '("const-gchar*" "param")
    '("const-gchar*" "value")
  )
)

(define-method clear_auth_params
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_clear_auth_params")
  (return-type "none")
)

(define-method set_qos_dscp
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_qos_dscp")
  (return-type "GstRTSPResult")
  (parameters
    '("guint" "qos_dscp")
  )
)

(define-method get_url
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_url")
  (return-type "GstRTSPUrl*")
)

(define-method get_ip
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_ip")
  (return-type "const-gchar*")
)

(define-method set_ip
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_ip")
  (return-type "none")
  (parameters
    '("const-gchar*" "ip")
  )
)

(define-method get_read_socket
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_read_socket")
  (return-type "GSocket*")
)

(define-method get_write_socket
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_write_socket")
  (return-type "GSocket*")
)

(define-method set_http_mode
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_http_mode")
  (return-type "none")
  (parameters
    '("gboolean" "enable")
  )
)

(define-method set_tunneled
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_tunneled")
  (return-type "none")
  (parameters
    '("gboolean" "tunneled")
  )
)

(define-method is_tunneled
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_is_tunneled")
  (return-type "gboolean")
)

(define-method get_tunnelid
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_tunnelid")
  (return-type "const-gchar*")
)

(define-method do_tunnel
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_do_tunnel")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPConnection*" "conn2")
  )
)

(define-method set_remember_session_id
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_remember_session_id")
  (return-type "none")
  (parameters
    '("gboolean" "remember")
  )
)

(define-method get_remember_session_id
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_remember_session_id")
  (return-type "gboolean")
)

(define-function gst_rtsp_watch_new
  (c-name "gst_rtsp_watch_new")
  (is-constructor-of "GstRtspWatch")
  (return-type "GstRTSPWatch*")
  (parameters
    '("GstRTSPConnection*" "conn")
    '("GstRTSPWatchFuncs*" "funcs")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method reset
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_reset")
  (return-type "none")
)

(define-method unref
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_unref")
  (return-type "none")
)

(define-method attach
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_attach")
  (return-type "guint")
  (parameters
    '("GMainContext*" "context")
  )
)

(define-method set_send_backlog
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_set_send_backlog")
  (return-type "none")
  (parameters
    '("gsize" "bytes")
    '("guint" "messages")
  )
)

(define-method get_send_backlog
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_get_send_backlog")
  (return-type "none")
  (parameters
    '("gsize*" "bytes")
    '("guint*" "messages")
  )
)

(define-method write_data
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_write_data")
  (return-type "GstRTSPResult")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
    '("guint*" "id")
  )
)

(define-method send_message
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_send_message")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "message")
    '("guint*" "id")
  )
)

(define-method wait_backlog
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_wait_backlog")
  (return-type "GstRTSPResult")
  (parameters
    '("GTimeVal*" "timeout")
  )
)

(define-method set_flushing
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)



;; From gstrtspdefs.h

(define-function gst_rtsp_strresult
  (c-name "gst_rtsp_strresult")
  (return-type "gchar*")
  (parameters
    '("GstRTSPResult" "result")
  )
)

(define-method as_text
  (of-object "GstRTSPMethod")
  (c-name "gst_rtsp_method_as_text")
  (return-type "const-gchar*")
)

(define-method as_text
  (of-object "GstRTSPVersion")
  (c-name "gst_rtsp_version_as_text")
  (return-type "const-gchar*")
)

(define-function gst_rtsp_header_as_text
  (c-name "gst_rtsp_header_as_text")
  (return-type "const-gchar*")
  (parameters
    '("GstRTSPHeaderField" "field")
  )
)

(define-function gst_rtsp_status_as_text
  (c-name "gst_rtsp_status_as_text")
  (return-type "const-gchar*")
  (parameters
    '("GstRTSPStatusCode" "code")
  )
)

(define-function gst_rtsp_options_as_text
  (c-name "gst_rtsp_options_as_text")
  (return-type "gchar*")
  (parameters
    '("GstRTSPMethod" "options")
  )
)

(define-function gst_rtsp_options_from_text
  (c-name "gst_rtsp_options_from_text")
  (return-type "GstRTSPMethod")
  (parameters
    '("const-gchar*" "options")
  )
)

(define-function gst_rtsp_find_header_field
  (c-name "gst_rtsp_find_header_field")
  (return-type "GstRTSPHeaderField")
  (parameters
    '("const-gchar*" "header")
  )
)

(define-function gst_rtsp_find_method
  (c-name "gst_rtsp_find_method")
  (return-type "GstRTSPMethod")
  (parameters
    '("const-gchar*" "method")
  )
)

(define-function gst_rtsp_header_allow_multiple
  (c-name "gst_rtsp_header_allow_multiple")
  (return-type "gboolean")
  (parameters
    '("GstRTSPHeaderField" "field")
  )
)



;; From gstrtsp-enumtypes.h

(define-function gst_rtsp_trans_mode_get_type
  (c-name "gst_rtsp_trans_mode_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_profile_get_type
  (c-name "gst_rtsp_profile_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_lower_trans_get_type
  (c-name "gst_rtsp_lower_trans_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_msg_type_get_type
  (c-name "gst_rtsp_msg_type_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_result_get_type
  (c-name "gst_rtsp_result_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_event_get_type
  (c-name "gst_rtsp_event_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_family_get_type
  (c-name "gst_rtsp_family_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_state_get_type
  (c-name "gst_rtsp_state_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_version_get_type
  (c-name "gst_rtsp_version_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_method_get_type
  (c-name "gst_rtsp_method_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_auth_method_get_type
  (c-name "gst_rtsp_auth_method_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_header_field_get_type
  (c-name "gst_rtsp_header_field_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_status_code_get_type
  (c-name "gst_rtsp_status_code_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_range_unit_get_type
  (c-name "gst_rtsp_range_unit_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_time_type_get_type
  (c-name "gst_rtsp_time_type_get_type")
  (return-type "GType")
)



;; From gstrtspextension.h

(define-function gst_rtsp_extension_get_type
  (c-name "gst_rtsp_extension_get_type")
  (return-type "GType")
)

(define-method detect_server
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_detect_server")
  (return-type "gboolean")
  (parameters
    '("GstRTSPMessage*" "resp")
  )
)

(define-method before_send
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_before_send")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "req")
  )
)

(define-method after_send
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_after_send")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "req")
    '("GstRTSPMessage*" "resp")
  )
)

(define-method parse_sdp
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_parse_sdp")
  (return-type "GstRTSPResult")
  (parameters
    '("GstSDPMessage*" "sdp")
    '("GstStructure*" "s")
  )
)

(define-method setup_media
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_setup_media")
  (return-type "GstRTSPResult")
  (parameters
    '("GstSDPMedia*" "media")
  )
)

(define-method configure_stream
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_configure_stream")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method get_transports
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_get_transports")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPLowerTrans" "protocols")
    '("gchar**" "transport")
  )
)

(define-method stream_select
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_stream_select")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPUrl*" "url")
  )
)

(define-method receive_request
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_receive_request")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "req")
  )
)

(define-method send
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_send")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "req")
    '("GstRTSPMessage*" "resp")
  )
)



;; From gstrtsp.h



;; From gstrtspmessage.h

(define-function gst_rtsp_message_new
  (c-name "gst_rtsp_message_new")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage**" "msg")
  )
)

(define-method init
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_init")
  (return-type "GstRTSPResult")
)

(define-method unset
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_unset")
  (return-type "GstRTSPResult")
)

(define-method free
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_free")
  (return-type "GstRTSPResult")
)

(define-method get_type
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_get_type")
  (return-type "GstRTSPMsgType")
)

(define-function gst_rtsp_message_new_request
  (c-name "gst_rtsp_message_new_request")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage**" "msg")
    '("GstRTSPMethod" "method")
    '("const-gchar*" "uri")
  )
)

(define-method init_request
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_init_request")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMethod" "method")
    '("const-gchar*" "uri")
  )
)

(define-method parse_request
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_parse_request")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMethod*" "method")
    '("const-gchar**" "uri")
    '("GstRTSPVersion*" "version")
  )
)

(define-function gst_rtsp_message_new_response
  (c-name "gst_rtsp_message_new_response")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage**" "msg")
    '("GstRTSPStatusCode" "code")
    '("const-gchar*" "reason")
    '("const-GstRTSPMessage*" "request")
  )
)

(define-method init_response
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_init_response")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPStatusCode" "code")
    '("const-gchar*" "reason")
    '("const-GstRTSPMessage*" "request")
  )
)

(define-method parse_response
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_parse_response")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPStatusCode*" "code")
    '("const-gchar**" "reason")
    '("GstRTSPVersion*" "version")
  )
)

(define-function gst_rtsp_message_new_data
  (c-name "gst_rtsp_message_new_data")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage**" "msg")
    '("guint8" "channel")
  )
)

(define-method init_data
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_init_data")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8" "channel")
  )
)

(define-method parse_data
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_parse_data")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8*" "channel")
  )
)

(define-method add_header
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_add_header")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPHeaderField" "field")
    '("const-gchar*" "value")
  )
)

(define-method take_header
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_take_header")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPHeaderField" "field")
    '("gchar*" "value")
  )
)

(define-method remove_header
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_remove_header")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPHeaderField" "field")
    '("gint" "indx")
  )
)

(define-method get_header
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_get_header")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPHeaderField" "field")
    '("gchar**" "value")
    '("gint" "indx")
  )
)

(define-method add_header_by_name
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_add_header_by_name")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "header")
    '("const-gchar*" "value")
  )
)

(define-method take_header_by_name
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_take_header_by_name")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "header")
    '("gchar*" "value")
  )
)

(define-method remove_header_by_name
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_remove_header_by_name")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "header")
    '("gint" "index")
  )
)

(define-method get_header_by_name
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_get_header_by_name")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "header")
    '("gchar**" "value")
    '("gint" "index")
  )
)

(define-method append_headers
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_append_headers")
  (return-type "GstRTSPResult")
  (parameters
    '("GString*" "str")
  )
)

(define-method set_body
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_set_body")
  (return-type "GstRTSPResult")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method take_body
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_take_body")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8*" "data")
    '("guint" "size")
  )
)

(define-method get_body
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_get_body")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8**" "data")
    '("guint*" "size")
  )
)

(define-method steal_body
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_steal_body")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8**" "data")
    '("guint*" "size")
  )
)

(define-method dump
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_dump")
  (return-type "GstRTSPResult")
)



;; From gstrtsprange.h

(define-function gst_rtsp_range_parse
  (c-name "gst_rtsp_range_parse")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "rangestr")
    '("GstRTSPTimeRange**" "range")
  )
)

(define-function gst_rtsp_range_to_string
  (c-name "gst_rtsp_range_to_string")
  (return-type "gchar*")
  (parameters
    '("const-GstRTSPTimeRange*" "range")
  )
)

(define-function gst_rtsp_range_free
  (c-name "gst_rtsp_range_free")
  (return-type "none")
  (parameters
    '("GstRTSPTimeRange*" "range")
  )
)

(define-function gst_rtsp_range_get_times
  (c-name "gst_rtsp_range_get_times")
  (return-type "gboolean")
  (parameters
    '("const-GstRTSPTimeRange*" "range")
    '("GstClockTime*" "min")
    '("GstClockTime*" "max")
  )
)

(define-function gst_rtsp_range_convert_units
  (c-name "gst_rtsp_range_convert_units")
  (return-type "gboolean")
  (parameters
    '("GstRTSPTimeRange*" "range")
    '("GstRTSPRangeUnit" "unit")
  )
)



;; From gstrtsptransport.h

(define-function gst_rtsp_transport_new
  (c-name "gst_rtsp_transport_new")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPTransport**" "transport")
  )
)

(define-method init
  (of-object "GstRTSPTransport")
  (c-name "gst_rtsp_transport_init")
  (return-type "GstRTSPResult")
)

(define-function gst_rtsp_transport_parse
  (c-name "gst_rtsp_transport_parse")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "str")
    '("GstRTSPTransport*" "transport")
  )
)

(define-method as_text
  (of-object "GstRTSPTransport")
  (c-name "gst_rtsp_transport_as_text")
  (return-type "gchar*")
)

(define-function gst_rtsp_transport_get_mime
  (c-name "gst_rtsp_transport_get_mime")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPTransMode" "trans")
    '("const-gchar**" "mime")
  )
)

(define-function gst_rtsp_transport_get_manager
  (c-name "gst_rtsp_transport_get_manager")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPTransMode" "trans")
    '("const-gchar**" "manager")
    '("guint" "option")
  )
)

(define-method get_media_type
  (of-object "GstRTSPTransport")
  (c-name "gst_rtsp_transport_get_media_type")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar**" "media_type")
  )
)

(define-method free
  (of-object "GstRTSPTransport")
  (c-name "gst_rtsp_transport_free")
  (return-type "GstRTSPResult")
)



;; From gstrtspurl.h

(define-function gst_rtsp_url_get_type
  (c-name "gst_rtsp_url_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_url_parse
  (c-name "gst_rtsp_url_parse")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "urlstr")
    '("GstRTSPUrl**" "url")
  )
)

(define-method copy
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_copy")
  (return-type "GstRTSPUrl*")
)

(define-method free
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_free")
  (return-type "none")
)

(define-method get_request_uri
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_get_request_uri")
  (return-type "gchar*")
)

(define-method decode_path_components
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_decode_path_components")
  (return-type "gchar**")
)

(define-method set_port
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_set_port")
  (return-type "GstRTSPResult")
  (parameters
    '("guint16" "port")
  )
)

(define-method get_port
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_get_port")
  (return-type "GstRTSPResult")
  (parameters
    '("guint16*" "port")
  )
)



;; From rtsp.h



;; From gstmikey.h

(define-function gst_mikey_message_get_type
  (c-name "gst_mikey_message_get_type")
  (return-type "GType")
)

(define-function gst_mikey_payload_get_type
  (c-name "gst_mikey_payload_get_type")
  (return-type "GType")
)

(define-function gst_mikey_payload_new
  (c-name "gst_mikey_payload_new")
  (is-constructor-of "GstMikeyPayload")
  (return-type "GstMIKEYPayload*")
  (parameters
    '("GstMIKEYPayloadType" "type")
  )
)

(define-method ref
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_ref")
  (return-type "GstMIKEYPayload*")
)

(define-method unref
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_copy")
  (return-type "GstMIKEYPayload*")
)

(define-method kemac_set
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_kemac_set")
  (return-type "gboolean")
  (parameters
    '("GstMIKEYEncAlg" "enc_alg")
    '("GstMIKEYMacAlg" "mac_alg")
  )
)

(define-method kemac_get_n_sub
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_kemac_get_n_sub")
  (return-type "guint")
)

(define-method kemac_get_sub
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_kemac_get_sub")
  (return-type "const-GstMIKEYPayload*")
  (parameters
    '("guint" "idx")
  )
)

(define-method kemac_remove_sub
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_kemac_remove_sub")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
  )
)

(define-method kemac_add_sub
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_kemac_add_sub")
  (return-type "gboolean")
  (parameters
    '("GstMIKEYPayload*" "newpay")
  )
)

(define-method pke_set
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_pke_set")
  (return-type "gboolean")
  (parameters
    '("GstMIKEYCacheType" "C")
    '("guint16" "data_len")
    '("const-guint8*" "data")
  )
)

(define-method t_set
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_t_set")
  (return-type "gboolean")
  (parameters
    '("GstMIKEYTSType" "type")
    '("const-guint8*" "ts_value")
  )
)

(define-method sp_set
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_sp_set")
  (return-type "gboolean")
  (parameters
    '("guint" "policy")
    '("GstMIKEYSecProto" "proto")
  )
)

(define-method sp_get_n_params
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_sp_get_n_params")
  (return-type "guint")
)

(define-method sp_get_param
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_sp_get_param")
  (return-type "const-GstMIKEYPayloadSPParam*")
  (parameters
    '("guint" "idx")
  )
)

(define-method sp_remove_param
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_sp_remove_param")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
  )
)

(define-method sp_add_param
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_sp_add_param")
  (return-type "gboolean")
  (parameters
    '("guint8" "type")
    '("guint8" "len")
    '("const-guint8*" "val")
  )
)

(define-method rand_set
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_rand_set")
  (return-type "gboolean")
  (parameters
    '("guint8" "len")
    '("const-guint8*" "rand")
  )
)

(define-method key_data_set_key
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_key_data_set_key")
  (return-type "gboolean")
  (parameters
    '("GstMIKEYKeyDataType" "key_type")
    '("guint16" "key_len")
    '("const-guint8*" "key_data")
  )
)

(define-method key_data_set_salt
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_key_data_set_salt")
  (return-type "gboolean")
  (parameters
    '("guint16" "salt_len")
    '("const-guint8*" "salt_data")
  )
)

(define-method key_data_set_spi
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_key_data_set_spi")
  (return-type "gboolean")
  (parameters
    '("guint8" "spi_len")
    '("const-guint8*" "spi_data")
  )
)

(define-method key_data_set_interval
  (of-object "GstMIKEYPayload")
  (c-name "gst_mikey_payload_key_data_set_interval")
  (return-type "gboolean")
  (parameters
    '("guint8" "vf_len")
    '("const-guint8*" "vf_data")
    '("guint8" "vt_len")
    '("const-guint8*" "vt_data")
  )
)

(define-function gst_mikey_message_new
  (c-name "gst_mikey_message_new")
  (is-constructor-of "GstMikeyMessage")
  (return-type "GstMIKEYMessage*")
)

(define-function gst_mikey_message_new_from_data
  (c-name "gst_mikey_message_new_from_data")
  (return-type "GstMIKEYMessage*")
  (parameters
    '("gconstpointer" "data")
    '("gsize" "size")
    '("GstMIKEYDecryptInfo*" "info")
    '("GError**" "error")
  )
)

(define-function gst_mikey_message_new_from_bytes
  (c-name "gst_mikey_message_new_from_bytes")
  (return-type "GstMIKEYMessage*")
  (parameters
    '("GBytes*" "bytes")
    '("GstMIKEYDecryptInfo*" "info")
    '("GError**" "error")
  )
)

(define-method to_bytes
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_to_bytes")
  (return-type "GBytes*")
  (parameters
    '("GstMIKEYEncryptInfo*" "info")
    '("GError**" "error")
  )
)

(define-function gst_mikey_message_new_from_caps
  (c-name "gst_mikey_message_new_from_caps")
  (return-type "GstMIKEYMessage*")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method base64_encode
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_base64_encode")
  (return-type "gchar*")
)

(define-method ref
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_ref")
  (return-type "GstMIKEYMessage*")
)

(define-method unref
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_unref")
  (return-type "none")
)

(define-method copy
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_copy")
  (return-type "GstMIKEYMessage*")
)

(define-method set_info
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_set_info")
  (return-type "gboolean")
  (parameters
    '("guint8" "version")
    '("GstMIKEYType" "type")
    '("gboolean" "V")
    '("GstMIKEYPRFFunc" "prf_func")
    '("guint32" "CSB_id")
    '("GstMIKEYMapType" "map_type")
  )
)

(define-method get_n_cs
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_get_n_cs")
  (return-type "guint")
)

(define-method get_cs_srtp
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_get_cs_srtp")
  (return-type "const-GstMIKEYMapSRTP*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_cs_srtp
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_insert_cs_srtp")
  (return-type "gboolean")
  (parameters
    '("gint" "idx")
    '("const-GstMIKEYMapSRTP*" "map")
  )
)

(define-method replace_cs_srtp
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_replace_cs_srtp")
  (return-type "gboolean")
  (parameters
    '("gint" "idx")
    '("const-GstMIKEYMapSRTP*" "map")
  )
)

(define-method remove_cs_srtp
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_remove_cs_srtp")
  (return-type "gboolean")
  (parameters
    '("gint" "idx")
  )
)

(define-method add_cs_srtp
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_add_cs_srtp")
  (return-type "gboolean")
  (parameters
    '("guint8" "policy")
    '("guint32" "ssrc")
    '("guint32" "roc")
  )
)

(define-method get_n_payloads
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_get_n_payloads")
  (return-type "guint")
)

(define-method get_payload
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_get_payload")
  (return-type "const-GstMIKEYPayload*")
  (parameters
    '("guint" "idx")
  )
)

(define-method find_payload
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_find_payload")
  (return-type "const-GstMIKEYPayload*")
  (parameters
    '("GstMIKEYPayloadType" "type")
    '("guint" "nth")
  )
)

(define-method remove_payload
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_remove_payload")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_payload
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_insert_payload")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
    '("GstMIKEYPayload*" "payload")
  )
)

(define-method add_payload
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_add_payload")
  (return-type "gboolean")
  (parameters
    '("GstMIKEYPayload*" "payload")
  )
)

(define-method replace_payload
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_replace_payload")
  (return-type "gboolean")
  (parameters
    '("guint" "idx")
    '("GstMIKEYPayload*" "payload")
  )
)

(define-method add_pke
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_add_pke")
  (return-type "gboolean")
  (parameters
    '("GstMIKEYCacheType" "C")
    '("guint16" "data_len")
    '("const-guint8*" "data")
  )
)

(define-method add_t
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_add_t")
  (return-type "gboolean")
  (parameters
    '("GstMIKEYTSType" "type")
    '("const-guint8*" "ts_value")
  )
)

(define-method add_t_now_ntp_utc
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_add_t_now_ntp_utc")
  (return-type "gboolean")
)

(define-method add_rand
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_add_rand")
  (return-type "gboolean")
  (parameters
    '("guint8" "len")
    '("const-guint8*" "rand")
  )
)

(define-method add_rand_len
  (of-object "GstMIKEYMessage")
  (c-name "gst_mikey_message_add_rand_len")
  (return-type "gboolean")
  (parameters
    '("guint8" "len")
  )
)



;; From gstsdp.h



;; From gstsdpmessage.h

(define-method set
  (of-object "GstSDPConnection")
  (c-name "gst_sdp_connection_set")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "address")
    '("guint" "ttl")
    '("guint" "addr_number")
  )
)

(define-method clear
  (of-object "GstSDPConnection")
  (c-name "gst_sdp_connection_clear")
  (return-type "GstSDPResult")
)

(define-method set
  (of-object "GstSDPBandwidth")
  (c-name "gst_sdp_bandwidth_set")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "bwtype")
    '("guint" "bandwidth")
  )
)

(define-method clear
  (of-object "GstSDPBandwidth")
  (c-name "gst_sdp_bandwidth_clear")
  (return-type "GstSDPResult")
)

(define-method set
  (of-object "GstSDPTime")
  (c-name "gst_sdp_time_set")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "start")
    '("const-gchar*" "stop")
    '("const-gchar**" "repeat")
  )
)

(define-method clear
  (of-object "GstSDPTime")
  (c-name "gst_sdp_time_clear")
  (return-type "GstSDPResult")
)

(define-method set
  (of-object "GstSDPZone")
  (c-name "gst_sdp_zone_set")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "adj_time")
    '("const-gchar*" "typed_time")
  )
)

(define-method clear
  (of-object "GstSDPZone")
  (c-name "gst_sdp_zone_clear")
  (return-type "GstSDPResult")
)

(define-method set
  (of-object "GstSDPAttribute")
  (c-name "gst_sdp_attribute_set")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)

(define-method clear
  (of-object "GstSDPAttribute")
  (c-name "gst_sdp_attribute_clear")
  (return-type "GstSDPResult")
)

(define-function gst_sdp_message_get_type
  (c-name "gst_sdp_message_get_type")
  (return-type "GType")
)

(define-function gst_sdp_message_new
  (c-name "gst_sdp_message_new")
  (return-type "GstSDPResult")
  (parameters
    '("GstSDPMessage**" "msg")
  )
)

(define-method init
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_init")
  (return-type "GstSDPResult")
)

(define-method uninit
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_uninit")
  (return-type "GstSDPResult")
)

(define-method free
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_free")
  (return-type "GstSDPResult")
)

(define-method copy
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_copy")
  (return-type "GstSDPResult")
  (parameters
    '("GstSDPMessage**" "copy")
  )
)

(define-function gst_sdp_message_parse_buffer
  (c-name "gst_sdp_message_parse_buffer")
  (return-type "GstSDPResult")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
    '("GstSDPMessage*" "msg")
  )
)

(define-method as_text
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_as_text")
  (return-type "gchar*")
)

(define-function gst_sdp_message_parse_uri
  (c-name "gst_sdp_message_parse_uri")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "uri")
    '("GstSDPMessage*" "msg")
  )
)

(define-function gst_sdp_message_as_uri
  (c-name "gst_sdp_message_as_uri")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "scheme")
    '("const-GstSDPMessage*" "msg")
  )
)

(define-function gst_sdp_address_is_multicast
  (c-name "gst_sdp_address_is_multicast")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "addr")
  )
)

(define-method get_version
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_version")
  (return-type "const-gchar*")
)

(define-method set_version
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_version")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "version")
  )
)

(define-method get_origin
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_origin")
  (return-type "const-GstSDPOrigin*")
)

(define-method set_origin
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_origin")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "username")
    '("const-gchar*" "sess_id")
    '("const-gchar*" "sess_version")
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "addr")
  )
)

(define-method get_session_name
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_session_name")
  (return-type "const-gchar*")
)

(define-method set_session_name
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_session_name")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "session_name")
  )
)

(define-method get_information
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_information")
  (return-type "const-gchar*")
)

(define-method set_information
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_information")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "information")
  )
)

(define-method get_uri
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_uri")
  (return-type "const-gchar*")
)

(define-method set_uri
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_uri")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method emails_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_emails_len")
  (return-type "guint")
)

(define-method get_email
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_email")
  (return-type "const-gchar*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_email
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_insert_email")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("const-gchar*" "email")
  )
)

(define-method replace_email
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_replace_email")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("const-gchar*" "email")
  )
)

(define-method remove_email
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_remove_email")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_email
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_email")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "email")
  )
)

(define-method phones_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_phones_len")
  (return-type "guint")
)

(define-method get_phone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_phone")
  (return-type "const-gchar*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_phone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_insert_phone")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("const-gchar*" "phone")
  )
)

(define-method replace_phone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_replace_phone")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("const-gchar*" "phone")
  )
)

(define-method remove_phone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_remove_phone")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_phone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_phone")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "phone")
  )
)

(define-method get_connection
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_connection")
  (return-type "const-GstSDPConnection*")
)

(define-method set_connection
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_connection")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "address")
    '("guint" "ttl")
    '("guint" "addr_number")
  )
)

(define-method bandwidths_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_bandwidths_len")
  (return-type "guint")
)

(define-method get_bandwidth
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_bandwidth")
  (return-type "const-GstSDPBandwidth*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_bandwidth
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_insert_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("GstSDPBandwidth*" "bw")
  )
)

(define-method replace_bandwidth
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_replace_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("GstSDPBandwidth*" "bw")
  )
)

(define-method remove_bandwidth
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_remove_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_bandwidth
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "bwtype")
    '("guint" "bandwidth")
  )
)

(define-method times_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_times_len")
  (return-type "guint")
)

(define-method get_time
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_time")
  (return-type "const-GstSDPTime*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_time
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_insert_time")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("GstSDPTime*" "t")
  )
)

(define-method replace_time
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_replace_time")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("GstSDPTime*" "t")
  )
)

(define-method remove_time
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_remove_time")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_time
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_time")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "start")
    '("const-gchar*" "stop")
    '("const-gchar**" "repeat")
  )
)

(define-method zones_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_zones_len")
  (return-type "guint")
)

(define-method get_zone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_zone")
  (return-type "const-GstSDPZone*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_zone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_insert_zone")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("GstSDPZone*" "zone")
  )
)

(define-method replace_zone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_replace_zone")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("GstSDPZone*" "zone")
  )
)

(define-method remove_zone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_remove_zone")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_zone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_zone")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "adj_time")
    '("const-gchar*" "typed_time")
  )
)

(define-method get_key
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_key")
  (return-type "const-GstSDPKey*")
)

(define-method set_key
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_key")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "type")
    '("const-gchar*" "data")
  )
)

(define-method attributes_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_attributes_len")
  (return-type "guint")
)

(define-method get_attribute
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_attribute")
  (return-type "const-GstSDPAttribute*")
  (parameters
    '("guint" "idx")
  )
)

(define-method get_attribute_val
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_attribute_val")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)

(define-method get_attribute_val_n
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_attribute_val_n")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
    '("guint" "nth")
  )
)

(define-method insert_attribute
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_insert_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("GstSDPAttribute*" "attr")
  )
)

(define-method replace_attribute
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_replace_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("GstSDPAttribute*" "attr")
  )
)

(define-method remove_attribute
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_remove_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_attribute
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)

(define-method medias_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_medias_len")
  (return-type "guint")
)

(define-method get_media
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_media")
  (return-type "const-GstSDPMedia*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_media
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_media")
  (return-type "GstSDPResult")
  (parameters
    '("GstSDPMedia*" "media")
  )
)

(define-method dump
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_dump")
  (return-type "GstSDPResult")
)

(define-function gst_sdp_media_new
  (c-name "gst_sdp_media_new")
  (return-type "GstSDPResult")
  (parameters
    '("GstSDPMedia**" "media")
  )
)

(define-method init
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_init")
  (return-type "GstSDPResult")
)

(define-method uninit
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_uninit")
  (return-type "GstSDPResult")
)

(define-method free
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_free")
  (return-type "GstSDPResult")
)

(define-method copy
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_copy")
  (return-type "GstSDPResult")
  (parameters
    '("GstSDPMedia**" "copy")
  )
)

(define-method as_text
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_as_text")
  (return-type "gchar*")
)

(define-method get_media
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_media")
  (return-type "const-gchar*")
)

(define-method set_media
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_media")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "med")
  )
)

(define-method get_port
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_port")
  (return-type "guint")
)

(define-method get_num_ports
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_num_ports")
  (return-type "guint")
)

(define-method set_port_info
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_port_info")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "port")
    '("guint" "num_ports")
  )
)

(define-method get_proto
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_proto")
  (return-type "const-gchar*")
)

(define-method set_proto
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_proto")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "proto")
  )
)

(define-method formats_len
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_formats_len")
  (return-type "guint")
)

(define-method get_format
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_format")
  (return-type "const-gchar*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_format
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_insert_format")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("const-gchar*" "format")
  )
)

(define-method replace_format
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_replace_format")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("const-gchar*" "format")
  )
)

(define-method remove_format
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_remove_format")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_format
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_add_format")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "format")
  )
)

(define-method get_information
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_information")
  (return-type "const-gchar*")
)

(define-method set_information
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_information")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "information")
  )
)

(define-method connections_len
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_connections_len")
  (return-type "guint")
)

(define-method get_connection
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_connection")
  (return-type "const-GstSDPConnection*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_connection
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_insert_connection")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("GstSDPConnection*" "conn")
  )
)

(define-method replace_connection
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_replace_connection")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("GstSDPConnection*" "conn")
  )
)

(define-method remove_connection
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_remove_connection")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_connection
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_add_connection")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "address")
    '("guint" "ttl")
    '("guint" "addr_number")
  )
)

(define-method bandwidths_len
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_bandwidths_len")
  (return-type "guint")
)

(define-method get_bandwidth
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_bandwidth")
  (return-type "const-GstSDPBandwidth*")
  (parameters
    '("guint" "idx")
  )
)

(define-method insert_bandwidth
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_insert_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("GstSDPBandwidth*" "bw")
  )
)

(define-method replace_bandwidth
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_replace_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("GstSDPBandwidth*" "bw")
  )
)

(define-method remove_bandwidth
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_remove_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_bandwidth
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_add_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "bwtype")
    '("guint" "bandwidth")
  )
)

(define-method get_key
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_key")
  (return-type "const-GstSDPKey*")
)

(define-method set_key
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_key")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "type")
    '("const-gchar*" "data")
  )
)

(define-method attributes_len
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_attributes_len")
  (return-type "guint")
)

(define-method get_attribute
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_attribute")
  (return-type "const-GstSDPAttribute*")
  (parameters
    '("guint" "idx")
  )
)

(define-method get_attribute_val
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_attribute_val")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)

(define-method get_attribute_val_n
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_attribute_val_n")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
    '("guint" "nth")
  )
)

(define-method insert_attribute
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_insert_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("gint" "idx")
    '("GstSDPAttribute*" "attr")
  )
)

(define-method replace_attribute
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_replace_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
    '("GstSDPAttribute*" "attr")
  )
)

(define-method remove_attribute
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_remove_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_attribute
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_add_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)

(define-method get_caps_from_media
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_caps_from_media")
  (return-type "GstCaps*")
  (parameters
    '("gint" "pt")
  )
)

(define-function gst_sdp_media_set_media_from_caps
  (c-name "gst_sdp_media_set_media_from_caps")
  (return-type "GstSDPResult")
  (parameters
    '("const-GstCaps*" "caps")
    '("GstSDPMedia*" "media")
  )
)

(define-function gst_sdp_make_keymgmt
  (c-name "gst_sdp_make_keymgmt")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "uri")
    '("const-gchar*" "base64")
  )
)

(define-method attributes_to_caps
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_attributes_to_caps")
  (return-type "GstSDPResult")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method attributes_to_caps
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_attributes_to_caps")
  (return-type "GstSDPResult")
  (parameters
    '("GstCaps*" "caps")
  )
)



;; From sdp.h



;; From gsttagdemux.h

(define-function gst_tag_demux_result_get_type
  (c-name "gst_tag_demux_result_get_type")
  (return-type "GType")
)

(define-function gst_tag_demux_get_type
  (c-name "gst_tag_demux_get_type")
  (return-type "GType")
)



;; From gsttageditingprivate.h

(define-function gst_vorbis_tag_get_type
  (c-name "gst_vorbis_tag_get_type")
  (return-type "GType")
)



;; From gsttagmux.h

(define-function gst_tag_mux_get_type
  (c-name "gst_tag_mux_get_type")
  (return-type "GType")
)



;; From id3v2.h

(define-function id3v2_read_synch_uint
  (c-name "id3v2_read_synch_uint")
  (return-type "guint")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-function id3v2_parse_frame
  (c-name "id3v2_parse_frame")
  (return-type "gboolean")
  (parameters
    '("ID3TagsWorking*" "work")
  )
)

(define-function id3v2_ununsync_data
  (c-name "id3v2_ununsync_data")
  (return-type "guint8*")
  (parameters
    '("const-guint8*" "unsync_data")
    '("guint32*" "size")
  )
)

(define-function id3v2_ensure_debug_category
  (c-name "id3v2_ensure_debug_category")
  (return-type "GstDebugCategory*")
)



;; From tag.h

(define-function gst_tag_image_type_get_type
  (c-name "gst_tag_image_type_get_type")
  (return-type "GType")
)

(define-function gst_tag_from_vorbis_tag
  (c-name "gst_tag_from_vorbis_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "vorbis_tag")
  )
)

(define-function gst_tag_to_vorbis_tag
  (c-name "gst_tag_to_vorbis_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "gst_tag")
  )
)

(define-function gst_vorbis_tag_add
  (c-name "gst_vorbis_tag_add")
  (return-type "none")
  (parameters
    '("GstTagList*" "list")
    '("const-gchar*" "tag")
    '("const-gchar*" "value")
  )
)

(define-function gst_tag_to_vorbis_comments
  (c-name "gst_tag_to_vorbis_comments")
  (return-type "GList*")
  (parameters
    '("const-GstTagList*" "list")
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_list_from_vorbiscomment
  (c-name "gst_tag_list_from_vorbiscomment")
  (return-type "GstTagList*")
  (parameters
    '("const-guint8*" "data")
    '("gsize" "size")
    '("const-guint8*" "id_data")
    '("const-guint" "id_data_length")
    '("gchar**" "vendor_string")
  )
)

(define-function gst_tag_list_from_vorbiscomment_buffer
  (c-name "gst_tag_list_from_vorbiscomment_buffer")
  (return-type "GstTagList*")
  (parameters
    '("GstBuffer*" "buffer")
    '("const-guint8*" "id_data")
    '("const-guint" "id_data_length")
    '("gchar**" "vendor_string")
  )
)

(define-method to_vorbiscomment_buffer
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_vorbiscomment_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("const-guint8*" "id_data")
    '("const-guint" "id_data_length")
    '("const-gchar*" "vendor_string")
  )
)

(define-function gst_tag_id3_genre_count
  (c-name "gst_tag_id3_genre_count")
  (return-type "guint")
)

(define-function gst_tag_id3_genre_get
  (c-name "gst_tag_id3_genre_get")
  (return-type "const-gchar*")
  (parameters
    '("const-guint" "id")
  )
)

(define-function gst_tag_list_new_from_id3v1
  (c-name "gst_tag_list_new_from_id3v1")
  (return-type "GstTagList*")
  (parameters
    '("const-guint8*" "data")
  )
)

(define-function gst_tag_from_id3_tag
  (c-name "gst_tag_from_id3_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "id3_tag")
  )
)

(define-function gst_tag_from_id3_user_tag
  (c-name "gst_tag_from_id3_user_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "type")
    '("const-gchar*" "id3_user_tag")
  )
)

(define-function gst_tag_to_id3_tag
  (c-name "gst_tag_to_id3_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "gst_tag")
  )
)

(define-method add_id3_image
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_id3_image")
  (return-type "gboolean")
  (parameters
    '("const-guint8*" "image_data")
    '("guint" "image_data_len")
    '("guint" "id3_picture_type")
  )
)

(define-function gst_tag_list_from_id3v2_tag
  (c-name "gst_tag_list_from_id3v2_tag")
  (return-type "GstTagList*")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_tag_get_id3v2_tag_size
  (c-name "gst_tag_get_id3v2_tag_size")
  (return-type "guint")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_tag_list_from_xmp_buffer
  (c-name "gst_tag_list_from_xmp_buffer")
  (return-type "GstTagList*")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method to_xmp_buffer
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_xmp_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gboolean" "read_only")
    '("const-gchar**" "schemas")
  )
)

(define-function gst_tag_xmp_list_schemas
  (c-name "gst_tag_xmp_list_schemas")
  (return-type "const-gchar**")
)

(define-method to_exif_buffer
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_exif_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gint" "byte_order")
    '("guint32" "base_offset")
  )
)

(define-method to_exif_buffer_with_tiff_header
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_exif_buffer_with_tiff_header")
  (return-type "GstBuffer*")
)

(define-function gst_tag_list_from_exif_buffer
  (c-name "gst_tag_list_from_exif_buffer")
  (return-type "GstTagList*")
  (parameters
    '("GstBuffer*" "buffer")
    '("gint" "byte_order")
    '("guint32" "base_offset")
  )
)

(define-function gst_tag_list_from_exif_buffer_with_tiff_header
  (c-name "gst_tag_list_from_exif_buffer_with_tiff_header")
  (return-type "GstTagList*")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_tag_parse_extended_comment
  (c-name "gst_tag_parse_extended_comment")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "ext_comment")
    '("gchar**" "key")
    '("gchar**" "lang")
    '("gchar**" "value")
    '("gboolean" "fail_if_no_key")
  )
)

(define-function gst_tag_freeform_string_to_utf8
  (c-name "gst_tag_freeform_string_to_utf8")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "data")
    '("gint" "size")
    '("const-gchar**" "env_vars")
  )
)

(define-function gst_tag_image_data_to_image_sample
  (c-name "gst_tag_image_data_to_image_sample")
  (return-type "GstSample*")
  (parameters
    '("const-guint8*" "image_data")
    '("guint" "image_data_len")
    '("GstTagImageType" "image_type")
  )
)

(define-function gst_tag_register_musicbrainz_tags
  (c-name "gst_tag_register_musicbrainz_tags")
  (return-type "none")
)

(define-function gst_tag_get_language_codes
  (c-name "gst_tag_get_language_codes")
  (return-type "gchar**")
)

(define-function gst_tag_get_language_name
  (c-name "gst_tag_get_language_name")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "language_code")
  )
)

(define-function gst_tag_get_language_code_iso_639_1
  (c-name "gst_tag_get_language_code_iso_639_1")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "lang_code")
  )
)

(define-function gst_tag_get_language_code_iso_639_2B
  (c-name "gst_tag_get_language_code_iso_639_2B")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "lang_code")
  )
)

(define-function gst_tag_get_language_code_iso_639_2T
  (c-name "gst_tag_get_language_code_iso_639_2T")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "lang_code")
  )
)

(define-function gst_tag_check_language_code
  (c-name "gst_tag_check_language_code")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "lang_code")
  )
)

(define-function gst_tag_get_licenses
  (c-name "gst_tag_get_licenses")
  (return-type "gchar**")
)

(define-function gst_tag_get_license_flags
  (c-name "gst_tag_get_license_flags")
  (return-type "GstTagLicenseFlags")
  (parameters
    '("const-gchar*" "license_ref")
  )
)

(define-function gst_tag_get_license_nick
  (c-name "gst_tag_get_license_nick")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "license_ref")
  )
)

(define-function gst_tag_get_license_title
  (c-name "gst_tag_get_license_title")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "license_ref")
  )
)

(define-function gst_tag_get_license_version
  (c-name "gst_tag_get_license_version")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "license_ref")
  )
)

(define-function gst_tag_get_license_description
  (c-name "gst_tag_get_license_description")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "license_ref")
  )
)

(define-function gst_tag_get_license_jurisdiction
  (c-name "gst_tag_get_license_jurisdiction")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "license_ref")
  )
)

(define-function gst_tag_license_flags_get_type
  (c-name "gst_tag_license_flags_get_type")
  (return-type "GType")
)



;; From xmpwriter.h

(define-function gst_tag_xmp_writer_get_type
  (c-name "gst_tag_xmp_writer_get_type")
  (return-type "GType")
)

(define-method add_all_schemas
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_add_all_schemas")
  (return-type "none")
)

(define-method add_schema
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_add_schema")
  (return-type "none")
  (parameters
    '("const-gchar*" "schema")
  )
)

(define-method has_schema
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_has_schema")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "schema")
  )
)

(define-method remove_schema
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_remove_schema")
  (return-type "none")
  (parameters
    '("const-gchar*" "schema")
  )
)

(define-method remove_all_schemas
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_remove_all_schemas")
  (return-type "none")
)

(define-method tag_list_to_xmp_buffer
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_tag_list_to_xmp_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("const-GstTagList*" "taglist")
    '("gboolean" "read_only")
  )
)



;; From colorbalancechannel.h

(define-function gst_color_balance_channel_get_type
  (c-name "gst_color_balance_channel_get_type")
  (return-type "GType")
)



;; From colorbalance.h

(define-function gst_color_balance_get_type
  (c-name "gst_color_balance_get_type")
  (return-type "GType")
)

(define-method list_channels
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_list_channels")
  (return-type "const-GList*")
)

(define-method set_value
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_set_value")
  (return-type "none")
  (parameters
    '("GstColorBalanceChannel*" "channel")
    '("gint" "value")
  )
)

(define-method get_value
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_get_value")
  (return-type "gint")
  (parameters
    '("GstColorBalanceChannel*" "channel")
  )
)

(define-method get_balance_type
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_get_balance_type")
  (return-type "GstColorBalanceType")
)

(define-method value_changed
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_value_changed")
  (return-type "none")
  (parameters
    '("GstColorBalanceChannel*" "channel")
    '("gint" "value")
  )
)



;; From gstvideoaffinetransformationmeta.h

(define-function gst_video_affine_transformation_meta_api_get_type
  (c-name "gst_video_affine_transformation_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_video_affine_transformation_meta_get_info
  (c-name "gst_video_affine_transformation_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_video_affine_transformation_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_video_affine_transformation_meta")
  (return-type "GstVideoAffineTransformationMeta*")
)

(define-method apply_matrix
  (of-object "GstVideoAffineTransformationMeta")
  (c-name "gst_video_affine_transformation_meta_apply_matrix")
  (return-type "none")
  (parameters
    '("const-gfloat" "matrix[16]")
  )
)



;; From gstvideodecoder.h

(define-function gst_video_decoder_get_type
  (c-name "gst_video_decoder_get_type")
  (return-type "GType")
)

(define-method set_packetized
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_set_packetized")
  (return-type "none")
  (parameters
    '("gboolean" "packetized")
  )
)

(define-method get_packetized
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_packetized")
  (return-type "gboolean")
)

(define-method set_estimate_rate
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_set_estimate_rate")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_estimate_rate
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_estimate_rate")
  (return-type "gint")
)

(define-method set_max_errors
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_set_max_errors")
  (return-type "none")
  (parameters
    '("gint" "num")
  )
)

(define-method get_max_errors
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_max_errors")
  (return-type "gint")
)

(define-method set_needs_format
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_set_needs_format")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method get_needs_format
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_needs_format")
  (return-type "gboolean")
)

(define-method set_latency
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_set_latency")
  (return-type "none")
  (parameters
    '("GstClockTime" "min_latency")
    '("GstClockTime" "max_latency")
  )
)

(define-method get_latency
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_latency")
  (return-type "none")
  (parameters
    '("GstClockTime*" "min_latency")
    '("GstClockTime*" "max_latency")
  )
)

(define-method get_allocator
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_allocator")
  (return-type "none")
  (parameters
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)

(define-method get_buffer_pool
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_buffer_pool")
  (return-type "GstBufferPool*")
)

(define-method get_frame
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_frame")
  (return-type "GstVideoCodecFrame*")
  (parameters
    '("int" "frame_number")
  )
)

(define-method get_oldest_frame
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_oldest_frame")
  (return-type "GstVideoCodecFrame*")
)

(define-method get_frames
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_frames")
  (return-type "GList*")
)

(define-method add_to_frame
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_add_to_frame")
  (return-type "none")
  (parameters
    '("int" "n_bytes")
  )
)

(define-method have_frame
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_have_frame")
  (return-type "GstFlowReturn")
)

(define-method get_pending_frame_size
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_pending_frame_size")
  (return-type "gsize")
)

(define-method allocate_output_buffer
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_allocate_output_buffer")
  (return-type "GstBuffer*")
)

(define-method allocate_output_frame
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_allocate_output_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstVideoCodecFrame*" "frame")
  )
)

(define-method set_output_state
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_set_output_state")
  (return-type "GstVideoCodecState*")
  (parameters
    '("GstVideoFormat" "fmt")
    '("guint" "width")
    '("guint" "height")
    '("GstVideoCodecState*" "reference")
  )
)

(define-method get_output_state
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_output_state")
  (return-type "GstVideoCodecState*")
)

(define-method negotiate
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_negotiate")
  (return-type "gboolean")
)

(define-method get_max_decode_time
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_max_decode_time")
  (return-type "GstClockTimeDiff")
  (parameters
    '("GstVideoCodecFrame*" "frame")
  )
)

(define-method get_qos_proportion
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_get_qos_proportion")
  (return-type "gdouble")
)

(define-method finish_frame
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_finish_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstVideoCodecFrame*" "frame")
  )
)

(define-method drop_frame
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_drop_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstVideoCodecFrame*" "frame")
  )
)

(define-method release_frame
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_release_frame")
  (return-type "none")
  (parameters
    '("GstVideoCodecFrame*" "frame")
  )
)

(define-method merge_tags
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_merge_tags")
  (return-type "none")
  (parameters
    '("const-GstTagList*" "tags")
    '("GstTagMergeMode" "mode")
  )
)

(define-method proxy_getcaps
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_proxy_getcaps")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "caps")
    '("GstCaps*" "filter")
  )
)

(define-method set_use_default_pad_acceptcaps
  (of-object "GstVideoDecoder")
  (c-name "gst_video_decoder_set_use_default_pad_acceptcaps")
  (return-type "none")
  (parameters
    '("gboolean" "use")
  )
)



;; From gstvideoencoder.h

(define-function gst_video_encoder_get_type
  (c-name "gst_video_encoder_get_type")
  (return-type "GType")
)

(define-method get_output_state
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_get_output_state")
  (return-type "GstVideoCodecState*")
)

(define-method set_output_state
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_set_output_state")
  (return-type "GstVideoCodecState*")
  (parameters
    '("GstCaps*" "caps")
    '("GstVideoCodecState*" "reference")
  )
)

(define-method negotiate
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_negotiate")
  (return-type "gboolean")
)

(define-method get_frame
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_get_frame")
  (return-type "GstVideoCodecFrame*")
  (parameters
    '("int" "frame_number")
  )
)

(define-method get_oldest_frame
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_get_oldest_frame")
  (return-type "GstVideoCodecFrame*")
)

(define-method get_frames
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_get_frames")
  (return-type "GList*")
)

(define-method allocate_output_buffer
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_allocate_output_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gsize" "size")
  )
)

(define-method allocate_output_frame
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_allocate_output_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstVideoCodecFrame*" "frame")
    '("gsize" "size")
  )
)

(define-method finish_frame
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_finish_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstVideoCodecFrame*" "frame")
  )
)

(define-method proxy_getcaps
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_proxy_getcaps")
  (return-type "GstCaps*")
  (parameters
    '("GstCaps*" "caps")
    '("GstCaps*" "filter")
  )
)

(define-method set_latency
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_set_latency")
  (return-type "none")
  (parameters
    '("GstClockTime" "min_latency")
    '("GstClockTime" "max_latency")
  )
)

(define-method get_latency
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_get_latency")
  (return-type "none")
  (parameters
    '("GstClockTime*" "min_latency")
    '("GstClockTime*" "max_latency")
  )
)

(define-method set_headers
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_set_headers")
  (return-type "none")
  (parameters
    '("GList*" "headers")
  )
)

(define-method merge_tags
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_merge_tags")
  (return-type "none")
  (parameters
    '("const-GstTagList*" "tags")
    '("GstTagMergeMode" "mode")
  )
)

(define-method get_allocator
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_get_allocator")
  (return-type "none")
  (parameters
    '("GstAllocator**" "allocator")
    '("GstAllocationParams*" "params")
  )
)

(define-method set_min_pts
  (of-object "GstVideoEncoder")
  (c-name "gst_video_encoder_set_min_pts")
  (return-type "none")
  (parameters
    '("GstClockTime" "min_pts")
  )
)



;; From gstvideofilter.h

(define-function gst_video_filter_get_type
  (c-name "gst_video_filter_get_type")
  (return-type "GType")
)



;; From gstvideometa.h

(define-function gst_video_meta_api_get_type
  (c-name "gst_video_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_video_meta_get_info
  (c-name "gst_video_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method get_video_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_video_meta")
  (return-type "GstVideoMeta*")
)

(define-method get_video_meta_id
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_video_meta_id")
  (return-type "GstVideoMeta*")
  (parameters
    '("gint" "id")
  )
)

(define-method add_video_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_video_meta")
  (return-type "GstVideoMeta*")
  (parameters
    '("GstVideoFrameFlags" "flags")
    '("GstVideoFormat" "format")
    '("guint" "width")
    '("guint" "height")
  )
)

(define-method add_video_meta_full
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_video_meta_full")
  (return-type "GstVideoMeta*")
  (parameters
    '("GstVideoFrameFlags" "flags")
    '("GstVideoFormat" "format")
    '("guint" "width")
    '("guint" "height")
    '("guint" "n_planes")
    '("gsize" "offset[GST_VIDEO_MAX_PLANES]")
    '("gint" "stride[GST_VIDEO_MAX_PLANES]")
  )
)

(define-method map
  (of-object "GstVideoMeta")
  (c-name "gst_video_meta_map")
  (return-type "gboolean")
  (parameters
    '("guint" "plane")
    '("GstMapInfo*" "info")
    '("gpointer*" "data")
    '("gint*" "stride")
    '("GstMapFlags" "flags")
  )
)

(define-method unmap
  (of-object "GstVideoMeta")
  (c-name "gst_video_meta_unmap")
  (return-type "gboolean")
  (parameters
    '("guint" "plane")
    '("GstMapInfo*" "info")
  )
)

(define-function gst_video_crop_meta_api_get_type
  (c-name "gst_video_crop_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_video_crop_meta_get_info
  (c-name "gst_video_crop_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-function gst_video_meta_transform_scale_get_quark
  (c-name "gst_video_meta_transform_scale_get_quark")
  (return-type "GQuark")
)

(define-function gst_video_gl_texture_upload_meta_api_get_type
  (c-name "gst_video_gl_texture_upload_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_video_gl_texture_upload_meta_get_info
  (c-name "gst_video_gl_texture_upload_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_video_gl_texture_upload_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_video_gl_texture_upload_meta")
  (return-type "GstVideoGLTextureUploadMeta*")
  (parameters
    '("GstVideoGLTextureOrientation" "texture_orientation")
    '("guint" "n_textures")
    '("GstVideoGLTextureType" "texture_type[4]")
    '("GstVideoGLTextureUpload" "upload")
    '("gpointer" "user_data")
    '("GBoxedCopyFunc" "user_data_copy")
    '("GBoxedFreeFunc" "user_data_free")
  )
)

(define-method upload
  (of-object "GstVideoGLTextureUploadMeta")
  (c-name "gst_video_gl_texture_upload_meta_upload")
  (return-type "gboolean")
  (parameters
    '("guint" "texture_id[4]")
  )
)

(define-function gst_video_region_of_interest_meta_api_get_type
  (c-name "gst_video_region_of_interest_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_video_region_of_interest_meta_get_info
  (c-name "gst_video_region_of_interest_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method get_video_region_of_interest_meta_id
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_video_region_of_interest_meta_id")
  (return-type "GstVideoRegionOfInterestMeta*")
  (parameters
    '("gint" "id")
  )
)

(define-method add_video_region_of_interest_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_video_region_of_interest_meta")
  (return-type "GstVideoRegionOfInterestMeta*")
  (parameters
    '("const-gchar*" "roi_type")
    '("guint" "x")
    '("guint" "y")
    '("guint" "w")
    '("guint" "h")
  )
)

(define-method add_video_region_of_interest_meta_id
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_video_region_of_interest_meta_id")
  (return-type "GstVideoRegionOfInterestMeta*")
  (parameters
    '("GQuark" "roi_type")
    '("guint" "x")
    '("guint" "y")
    '("guint" "w")
    '("guint" "h")
  )
)



;; From gstvideopool.h

(define-function gst_buffer_pool_config_set_video_alignment
  (c-name "gst_buffer_pool_config_set_video_alignment")
  (return-type "none")
  (parameters
    '("GstStructure*" "config")
    '("GstVideoAlignment*" "align")
  )
)

(define-function gst_buffer_pool_config_get_video_alignment
  (c-name "gst_buffer_pool_config_get_video_alignment")
  (return-type "gboolean")
  (parameters
    '("GstStructure*" "config")
    '("GstVideoAlignment*" "align")
  )
)

(define-function gst_video_buffer_pool_get_type
  (c-name "gst_video_buffer_pool_get_type")
  (return-type "GType")
)

(define-function gst_video_buffer_pool_new
  (c-name "gst_video_buffer_pool_new")
  (is-constructor-of "GstVideoBufferPool")
  (return-type "GstBufferPool*")
)



;; From gstvideosink.h

(define-function gst_video_sink_get_type
  (c-name "gst_video_sink_get_type")
  (return-type "GType")
)

(define-function gst_video_sink_center_rect
  (c-name "gst_video_sink_center_rect")
  (return-type "none")
  (parameters
    '("GstVideoRectangle" "src")
    '("GstVideoRectangle" "dst")
    '("GstVideoRectangle*" "result")
    '("gboolean" "scaling")
  )
)



;; From gstvideoutils.h

(define-function gst_video_codec_state_get_type
  (c-name "gst_video_codec_state_get_type")
  (return-type "GType")
)

(define-method ref
  (of-object "GstVideoCodecState")
  (c-name "gst_video_codec_state_ref")
  (return-type "GstVideoCodecState*")
)

(define-method unref
  (of-object "GstVideoCodecState")
  (c-name "gst_video_codec_state_unref")
  (return-type "none")
)

(define-function gst_video_codec_frame_get_type
  (c-name "gst_video_codec_frame_get_type")
  (return-type "GType")
)

(define-method ref
  (of-object "GstVideoCodecFrame")
  (c-name "gst_video_codec_frame_ref")
  (return-type "GstVideoCodecFrame*")
)

(define-method unref
  (of-object "GstVideoCodecFrame")
  (c-name "gst_video_codec_frame_unref")
  (return-type "none")
)

(define-method set_user_data
  (of-object "GstVideoCodecFrame")
  (c-name "gst_video_codec_frame_set_user_data")
  (return-type "none")
  (parameters
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method get_user_data
  (of-object "GstVideoCodecFrame")
  (c-name "gst_video_codec_frame_get_user_data")
  (return-type "gpointer")
)



;; From gstvideoutilsprivate.h



;; From navigation.h

(define-function gst_navigation_get_type
  (c-name "gst_navigation_get_type")
  (return-type "GType")
)

(define-function gst_navigation_query_get_type
  (c-name "gst_navigation_query_get_type")
  (return-type "GstNavigationQueryType")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-function gst_navigation_query_new_commands
  (c-name "gst_navigation_query_new_commands")
  (return-type "GstQuery*")
)

(define-function gst_navigation_query_set_commands
  (c-name "gst_navigation_query_set_commands")
  (return-type "none")
  (parameters
    '("GstQuery*" "query")
    '("gint" "n_cmds")
  )
  (varargs #t)
)

(define-function gst_navigation_query_set_commandsv
  (c-name "gst_navigation_query_set_commandsv")
  (return-type "none")
  (parameters
    '("GstQuery*" "query")
    '("gint" "n_cmds")
    '("GstNavigationCommand*" "cmds")
  )
)

(define-function gst_navigation_query_parse_commands_length
  (c-name "gst_navigation_query_parse_commands_length")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
    '("guint*" "n_cmds")
  )
)

(define-function gst_navigation_query_parse_commands_nth
  (c-name "gst_navigation_query_parse_commands_nth")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
    '("guint" "nth")
    '("GstNavigationCommand*" "cmd")
  )
)

(define-function gst_navigation_query_new_angles
  (c-name "gst_navigation_query_new_angles")
  (return-type "GstQuery*")
)

(define-function gst_navigation_query_set_angles
  (c-name "gst_navigation_query_set_angles")
  (return-type "none")
  (parameters
    '("GstQuery*" "query")
    '("guint" "cur_angle")
    '("guint" "n_angles")
  )
)

(define-function gst_navigation_query_parse_angles
  (c-name "gst_navigation_query_parse_angles")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
    '("guint*" "cur_angle")
    '("guint*" "n_angles")
  )
)

(define-function gst_navigation_message_get_type
  (c-name "gst_navigation_message_get_type")
  (return-type "GstNavigationMessageType")
  (parameters
    '("GstMessage*" "message")
  )
)

(define-function gst_navigation_message_new_mouse_over
  (c-name "gst_navigation_message_new_mouse_over")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gboolean" "active")
  )
)

(define-function gst_navigation_message_parse_mouse_over
  (c-name "gst_navigation_message_parse_mouse_over")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
    '("gboolean*" "active")
  )
)

(define-function gst_navigation_message_new_commands_changed
  (c-name "gst_navigation_message_new_commands_changed")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_navigation_message_new_angles_changed
  (c-name "gst_navigation_message_new_angles_changed")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("guint" "cur_angle")
    '("guint" "n_angles")
  )
)

(define-function gst_navigation_message_parse_angles_changed
  (c-name "gst_navigation_message_parse_angles_changed")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
    '("guint*" "cur_angle")
    '("guint*" "n_angles")
  )
)

(define-function gst_navigation_message_new_event
  (c-name "gst_navigation_message_new_event")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstEvent*" "event")
  )
)

(define-function gst_navigation_message_parse_event
  (c-name "gst_navigation_message_parse_event")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
    '("GstEvent**" "event")
  )
)

(define-function gst_navigation_event_get_type
  (c-name "gst_navigation_event_get_type")
  (return-type "GstNavigationEventType")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-function gst_navigation_event_parse_key_event
  (c-name "gst_navigation_event_parse_key_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("const-gchar**" "key")
  )
)

(define-function gst_navigation_event_parse_mouse_button_event
  (c-name "gst_navigation_event_parse_mouse_button_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("gint*" "button")
    '("gdouble*" "x")
    '("gdouble*" "y")
  )
)

(define-function gst_navigation_event_parse_mouse_move_event
  (c-name "gst_navigation_event_parse_mouse_move_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("gdouble*" "x")
    '("gdouble*" "y")
  )
)

(define-function gst_navigation_event_parse_command
  (c-name "gst_navigation_event_parse_command")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("GstNavigationCommand*" "command")
  )
)

(define-method send_event
  (of-object "GstNavigation")
  (c-name "gst_navigation_send_event")
  (return-type "none")
  (parameters
    '("GstStructure*" "structure")
  )
)

(define-method send_key_event
  (of-object "GstNavigation")
  (c-name "gst_navigation_send_key_event")
  (return-type "none")
  (parameters
    '("const-char*" "event")
    '("const-char*" "key")
  )
)

(define-method send_mouse_event
  (of-object "GstNavigation")
  (c-name "gst_navigation_send_mouse_event")
  (return-type "none")
  (parameters
    '("const-char*" "event")
    '("int" "button")
    '("double" "x")
    '("double" "y")
  )
)

(define-method send_command
  (of-object "GstNavigation")
  (c-name "gst_navigation_send_command")
  (return-type "none")
  (parameters
    '("GstNavigationCommand" "command")
  )
)



;; From video-blend.h

(define-function gst_video_blend_scale_linear_RGBA
  (c-name "gst_video_blend_scale_linear_RGBA")
  (return-type "none")
  (parameters
    '("GstVideoInfo*" "src")
    '("GstBuffer*" "src_buffer")
    '("gint" "dest_height")
    '("gint" "dest_width")
    '("GstVideoInfo*" "dest")
    '("GstBuffer**" "dest_buffer")
  )
)

(define-function gst_video_blend
  (c-name "gst_video_blend")
  (return-type "gboolean")
  (parameters
    '("GstVideoFrame*" "dest")
    '("GstVideoFrame*" "src")
    '("gint" "x")
    '("gint" "y")
    '("gfloat" "global_alpha")
  )
)



;; From video-chroma.h

(define-function gst_video_chroma_from_string
  (c-name "gst_video_chroma_from_string")
  (return-type "GstVideoChromaSite")
  (parameters
    '("const-gchar*" "s")
  )
)

(define-function gst_video_chroma_to_string
  (c-name "gst_video_chroma_to_string")
  (return-type "const-gchar*")
  (parameters
    '("GstVideoChromaSite" "site")
  )
)

(define-function gst_video_chroma_resample_new
  (c-name "gst_video_chroma_resample_new")
  (is-constructor-of "GstVideoChromaResample")
  (return-type "GstVideoChromaResample*")
  (parameters
    '("GstVideoChromaMethod" "method")
    '("GstVideoChromaSite" "site")
    '("GstVideoChromaFlags" "flags")
    '("GstVideoFormat" "format")
    '("gint" "h_factor")
    '("gint" "v_factor")
  )
)

(define-method free
  (of-object "GstVideoChromaResample")
  (c-name "gst_video_chroma_resample_free")
  (return-type "none")
)

(define-method get_info
  (of-object "GstVideoChromaResample")
  (c-name "gst_video_chroma_resample_get_info")
  (return-type "none")
  (parameters
    '("guint*" "n_lines")
    '("gint*" "offset")
  )
)

(define-method 
  (of-object "GstVideoChromaResample")
  (c-name "gst_video_chroma_resample")
  (return-type "none")
  (parameters
    '("gpointer[]" "lines")
    '("gint" "width")
  )
)



;; From video-color.h

(define-method get_Kr_Kb
  (of-object "GstVideoColorMatrix")
  (c-name "gst_video_color_matrix_get_Kr_Kb")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "Kr")
    '("gdouble*" "Kb")
  )
)

(define-function gst_video_color_transfer_encode
  (c-name "gst_video_color_transfer_encode")
  (return-type "gdouble")
  (parameters
    '("GstVideoTransferFunction" "func")
    '("gdouble" "val")
  )
)

(define-function gst_video_color_transfer_decode
  (c-name "gst_video_color_transfer_decode")
  (return-type "gdouble")
  (parameters
    '("GstVideoTransferFunction" "func")
    '("gdouble" "val")
  )
)

(define-method get_info
  (of-object "GstVideoColorPrimaries")
  (c-name "gst_video_color_primaries_get_info")
  (return-type "const-GstVideoColorPrimariesInfo*")
)

(define-method matches
  (of-object "GstVideoColorimetry")
  (c-name "gst_video_colorimetry_matches")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "color")
  )
)

(define-method from_string
  (of-object "GstVideoColorimetry")
  (c-name "gst_video_colorimetry_from_string")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "color")
  )
)

(define-method to_string
  (of-object "GstVideoColorimetry")
  (c-name "gst_video_colorimetry_to_string")
  (return-type "gchar*")
)

(define-method is_equal
  (of-object "GstVideoColorimetry")
  (c-name "gst_video_colorimetry_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstVideoColorimetry*" "other")
  )
)

(define-method offsets
  (of-object "GstVideoColorRange")
  (c-name "gst_video_color_range_offsets")
  (return-type "none")
  (parameters
    '("const-GstVideoFormatInfo*" "info")
    '("gint" "offset[GST_VIDEO_MAX_COMPONENTS]")
    '("gint" "scale[GST_VIDEO_MAX_COMPONENTS]")
  )
)



;; From video-converter.h

(define-function gst_video_converter_new
  (c-name "gst_video_converter_new")
  (is-constructor-of "GstVideoConverter")
  (return-type "GstVideoConverter*")
  (parameters
    '("GstVideoInfo*" "in_info")
    '("GstVideoInfo*" "out_info")
    '("GstStructure*" "config")
  )
)

(define-method free
  (of-object "GstVideoConverter")
  (c-name "gst_video_converter_free")
  (return-type "none")
)

(define-method set_config
  (of-object "GstVideoConverter")
  (c-name "gst_video_converter_set_config")
  (return-type "gboolean")
  (parameters
    '("GstStructure*" "config")
  )
)

(define-method get_config
  (of-object "GstVideoConverter")
  (c-name "gst_video_converter_get_config")
  (return-type "const-GstStructure*")
)

(define-method frame
  (of-object "GstVideoConverter")
  (c-name "gst_video_converter_frame")
  (return-type "none")
  (parameters
    '("const-GstVideoFrame*" "src")
    '("GstVideoFrame*" "dest")
  )
)



;; From video-dither.h

(define-function gst_video_dither_new
  (c-name "gst_video_dither_new")
  (is-constructor-of "GstVideoDither")
  (return-type "GstVideoDither*")
  (parameters
    '("GstVideoDitherMethod" "method")
    '("GstVideoDitherFlags" "flags")
    '("GstVideoFormat" "format")
    '("guint" "quantizer[GST_VIDEO_MAX_COMPONENTS]")
    '("guint" "width")
  )
)

(define-method free
  (of-object "GstVideoDither")
  (c-name "gst_video_dither_free")
  (return-type "none")
)

(define-method line
  (of-object "GstVideoDither")
  (c-name "gst_video_dither_line")
  (return-type "none")
  (parameters
    '("gpointer" "line")
    '("guint" "x")
    '("guint" "y")
    '("guint" "width")
  )
)



;; From video-enumtypes.h

(define-function gst_video_format_get_type
  (c-name "gst_video_format_get_type")
  (return-type "GType")
)

(define-function gst_video_format_flags_get_type
  (c-name "gst_video_format_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_pack_flags_get_type
  (c-name "gst_video_pack_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_color_range_get_type
  (c-name "gst_video_color_range_get_type")
  (return-type "GType")
)

(define-function gst_video_color_matrix_get_type
  (c-name "gst_video_color_matrix_get_type")
  (return-type "GType")
)

(define-function gst_video_transfer_function_get_type
  (c-name "gst_video_transfer_function_get_type")
  (return-type "GType")
)

(define-function gst_video_color_primaries_get_type
  (c-name "gst_video_color_primaries_get_type")
  (return-type "GType")
)

(define-function gst_video_interlace_mode_get_type
  (c-name "gst_video_interlace_mode_get_type")
  (return-type "GType")
)

(define-function gst_video_multiview_mode_get_type
  (c-name "gst_video_multiview_mode_get_type")
  (return-type "GType")
)

(define-function gst_video_multiview_frame_packing_get_type
  (c-name "gst_video_multiview_frame_packing_get_type")
  (return-type "GType")
)

(define-function gst_video_multiview_flags_get_type
  (c-name "gst_video_multiview_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_flags_get_type
  (c-name "gst_video_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_dither_method_get_type
  (c-name "gst_video_dither_method_get_type")
  (return-type "GType")
)

(define-function gst_video_dither_flags_get_type
  (c-name "gst_video_dither_flags_get_type")
  (return-type "GType")
)

(define-function gst_color_balance_type_get_type
  (c-name "gst_color_balance_type_get_type")
  (return-type "GType")
)

(define-function gst_navigation_command_get_type
  (c-name "gst_navigation_command_get_type")
  (return-type "GType")
)

(define-function gst_navigation_query_type_get_type
  (c-name "gst_navigation_query_type_get_type")
  (return-type "GType")
)

(define-function gst_navigation_message_type_get_type
  (c-name "gst_navigation_message_type_get_type")
  (return-type "GType")
)

(define-function gst_navigation_event_type_get_type
  (c-name "gst_navigation_event_type_get_type")
  (return-type "GType")
)

(define-function gst_video_chroma_site_get_type
  (c-name "gst_video_chroma_site_get_type")
  (return-type "GType")
)

(define-function gst_video_chroma_method_get_type
  (c-name "gst_video_chroma_method_get_type")
  (return-type "GType")
)

(define-function gst_video_chroma_flags_get_type
  (c-name "gst_video_chroma_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_tile_type_get_type
  (c-name "gst_video_tile_type_get_type")
  (return-type "GType")
)

(define-function gst_video_tile_mode_get_type
  (c-name "gst_video_tile_mode_get_type")
  (return-type "GType")
)

(define-function gst_video_alpha_mode_get_type
  (c-name "gst_video_alpha_mode_get_type")
  (return-type "GType")
)

(define-function gst_video_chroma_mode_get_type
  (c-name "gst_video_chroma_mode_get_type")
  (return-type "GType")
)

(define-function gst_video_matrix_mode_get_type
  (c-name "gst_video_matrix_mode_get_type")
  (return-type "GType")
)

(define-function gst_video_gamma_mode_get_type
  (c-name "gst_video_gamma_mode_get_type")
  (return-type "GType")
)

(define-function gst_video_primaries_mode_get_type
  (c-name "gst_video_primaries_mode_get_type")
  (return-type "GType")
)

(define-function gst_video_resampler_method_get_type
  (c-name "gst_video_resampler_method_get_type")
  (return-type "GType")
)

(define-function gst_video_resampler_flags_get_type
  (c-name "gst_video_resampler_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_frame_flags_get_type
  (c-name "gst_video_frame_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_buffer_flags_get_type
  (c-name "gst_video_buffer_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_frame_map_flags_get_type
  (c-name "gst_video_frame_map_flags_get_type")
  (return-type "GType")
)

(define-function gst_video_scaler_flags_get_type
  (c-name "gst_video_scaler_flags_get_type")
  (return-type "GType")
)



;; From video-event.h

(define-function gst_video_event_new_still_frame
  (c-name "gst_video_event_new_still_frame")
  (return-type "GstEvent*")
  (parameters
    '("gboolean" "in_still")
  )
)

(define-function gst_video_event_parse_still_frame
  (c-name "gst_video_event_parse_still_frame")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("gboolean*" "in_still")
  )
)

(define-function gst_video_event_new_downstream_force_key_unit
  (c-name "gst_video_event_new_downstream_force_key_unit")
  (return-type "GstEvent*")
  (parameters
    '("GstClockTime" "timestamp")
    '("GstClockTime" "stream_time")
    '("GstClockTime" "running_time")
    '("gboolean" "all_headers")
    '("guint" "count")
  )
)

(define-function gst_video_event_parse_downstream_force_key_unit
  (c-name "gst_video_event_parse_downstream_force_key_unit")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("GstClockTime*" "timestamp")
    '("GstClockTime*" "stream_time")
    '("GstClockTime*" "running_time")
    '("gboolean*" "all_headers")
    '("guint*" "count")
  )
)

(define-function gst_video_event_new_upstream_force_key_unit
  (c-name "gst_video_event_new_upstream_force_key_unit")
  (return-type "GstEvent*")
  (parameters
    '("GstClockTime" "running_time")
    '("gboolean" "all_headers")
    '("guint" "count")
  )
)

(define-function gst_video_event_parse_upstream_force_key_unit
  (c-name "gst_video_event_parse_upstream_force_key_unit")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("GstClockTime*" "running_time")
    '("gboolean*" "all_headers")
    '("guint*" "count")
  )
)

(define-function gst_video_event_is_force_key_unit
  (c-name "gst_video_event_is_force_key_unit")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)



;; From video-format.h

(define-function gst_video_format_from_masks
  (c-name "gst_video_format_from_masks")
  (return-type "GstVideoFormat")
  (parameters
    '("gint" "depth")
    '("gint" "bpp")
    '("gint" "endianness")
    '("guint" "red_mask")
    '("guint" "green_mask")
    '("guint" "blue_mask")
    '("guint" "alpha_mask")
  )
)

(define-function gst_video_format_from_fourcc
  (c-name "gst_video_format_from_fourcc")
  (return-type "GstVideoFormat")
  (parameters
    '("guint32" "fourcc")
  )
)

(define-function gst_video_format_from_string
  (c-name "gst_video_format_from_string")
  (return-type "GstVideoFormat")
  (parameters
    '("const-gchar*" "format")
  )
)

(define-method to_fourcc
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_to_fourcc")
  (return-type "guint32")
)

(define-method to_string
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_to_string")
  (return-type "const-gchar*")
)

(define-method get_info
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_info")
  (return-type "const-GstVideoFormatInfo*")
)

(define-method get_palette
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_palette")
  (return-type "gconstpointer")
  (parameters
    '("gsize*" "size")
  )
)



;; From video-frame.h

(define-method map
  (of-object "GstVideoFrame")
  (c-name "gst_video_frame_map")
  (return-type "gboolean")
  (parameters
    '("GstVideoInfo*" "info")
    '("GstBuffer*" "buffer")
    '("GstMapFlags" "flags")
  )
)

(define-method map_id
  (of-object "GstVideoFrame")
  (c-name "gst_video_frame_map_id")
  (return-type "gboolean")
  (parameters
    '("GstVideoInfo*" "info")
    '("GstBuffer*" "buffer")
    '("gint" "id")
    '("GstMapFlags" "flags")
  )
)

(define-method unmap
  (of-object "GstVideoFrame")
  (c-name "gst_video_frame_unmap")
  (return-type "none")
)

(define-method copy
  (of-object "GstVideoFrame")
  (c-name "gst_video_frame_copy")
  (return-type "gboolean")
  (parameters
    '("const-GstVideoFrame*" "src")
  )
)

(define-method copy_plane
  (of-object "GstVideoFrame")
  (c-name "gst_video_frame_copy_plane")
  (return-type "gboolean")
  (parameters
    '("const-GstVideoFrame*" "src")
    '("guint" "plane")
  )
)



;; From video.h

(define-method reset
  (of-object "GstVideoAlignment")
  (c-name "gst_video_alignment_reset")
  (return-type "none")
)

(define-function gst_video_calculate_display_ratio
  (c-name "gst_video_calculate_display_ratio")
  (return-type "gboolean")
  (parameters
    '("guint*" "dar_n")
    '("guint*" "dar_d")
    '("guint" "video_width")
    '("guint" "video_height")
    '("guint" "video_par_n")
    '("guint" "video_par_d")
    '("guint" "display_par_n")
    '("guint" "display_par_d")
  )
)

(define-function gst_video_guess_framerate
  (c-name "gst_video_guess_framerate")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "duration")
    '("gint*" "dest_n")
    '("gint*" "dest_d")
  )
)

(define-function gst_video_convert_sample_async
  (c-name "gst_video_convert_sample_async")
  (return-type "none")
  (parameters
    '("GstSample*" "sample")
    '("const-GstCaps*" "to_caps")
    '("GstClockTime" "timeout")
    '("GstVideoConvertSampleCallback" "callback")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_notify")
  )
)

(define-function gst_video_convert_sample
  (c-name "gst_video_convert_sample")
  (return-type "GstSample*")
  (parameters
    '("GstSample*" "sample")
    '("const-GstCaps*" "to_caps")
    '("GstClockTime" "timeout")
    '("GError**" "error")
  )
)



;; From video-info.h

(define-method to_string
  (of-object "GstVideoInterlaceMode")
  (c-name "gst_video_interlace_mode_to_string")
  (return-type "const-gchar*")
)

(define-function gst_video_interlace_mode_from_string
  (c-name "gst_video_interlace_mode_from_string")
  (return-type "GstVideoInterlaceMode")
  (parameters
    '("const-gchar*" "mode")
  )
)

(define-function gst_video_info_get_type
  (c-name "gst_video_info_get_type")
  (return-type "GType")
)

(define-function gst_video_info_new
  (c-name "gst_video_info_new")
  (is-constructor-of "GstVideoInfo")
  (return-type "GstVideoInfo*")
)

(define-method init
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_init")
  (return-type "none")
)

(define-method copy
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_copy")
  (return-type "GstVideoInfo*")
)

(define-method free
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_free")
  (return-type "none")
)

(define-method set_format
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_set_format")
  (return-type "none")
  (parameters
    '("GstVideoFormat" "format")
    '("guint" "width")
    '("guint" "height")
  )
)

(define-method from_caps
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_from_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method to_caps
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_to_caps")
  (return-type "GstCaps*")
)

(define-method convert
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_value")
    '("GstFormat" "dest_format")
    '("gint64*" "dest_value")
  )
)

(define-method is_equal
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstVideoInfo*" "other")
  )
)

(define-method align
  (of-object "GstVideoInfo")
  (c-name "gst_video_info_align")
  (return-type "none")
  (parameters
    '("GstVideoAlignment*" "align")
  )
)



;; From video-multiview.h

(define-function gst_video_multiview_flagset_get_type
  (c-name "gst_video_multiview_flagset_get_type")
  (return-type "GType")
)

(define-method to_caps_string
  (of-object "GstVideoMultiviewMode")
  (c-name "gst_video_multiview_mode_to_caps_string")
  (return-type "const-gchar*")
)

(define-function gst_video_multiview_mode_from_caps_string
  (c-name "gst_video_multiview_mode_from_caps_string")
  (return-type "GstVideoMultiviewMode")
  (parameters
    '("const-gchar*" "caps_mview_mode")
  )
)

(define-function gst_video_multiview_get_mono_modes
  (c-name "gst_video_multiview_get_mono_modes")
  (return-type "const-GValue*")
)

(define-function gst_video_multiview_get_unpacked_modes
  (c-name "gst_video_multiview_get_unpacked_modes")
  (return-type "const-GValue*")
)

(define-function gst_video_multiview_get_doubled_height_modes
  (c-name "gst_video_multiview_get_doubled_height_modes")
  (return-type "const-GValue*")
)

(define-function gst_video_multiview_get_doubled_width_modes
  (c-name "gst_video_multiview_get_doubled_width_modes")
  (return-type "const-GValue*")
)

(define-function gst_video_multiview_get_doubled_size_modes
  (c-name "gst_video_multiview_get_doubled_size_modes")
  (return-type "const-GValue*")
)

(define-function gst_video_multiview_video_info_change_mode
  (c-name "gst_video_multiview_video_info_change_mode")
  (return-type "none")
  (parameters
    '("GstVideoInfo*" "info")
    '("GstVideoMultiviewMode" "out_mview_mode")
    '("GstVideoMultiviewFlags" "out_mview_flags")
  )
)

(define-function gst_video_multiview_guess_half_aspect
  (c-name "gst_video_multiview_guess_half_aspect")
  (return-type "gboolean")
  (parameters
    '("GstVideoMultiviewMode" "mv_mode")
    '("guint" "width")
    '("guint" "height")
    '("guint" "par_n")
    '("guint" "par_d")
  )
)

(define-function gst_video_multiview_meta_api_get_type
  (c-name "gst_video_multiview_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_video_multiview_meta_get_info
  (c-name "gst_video_multiview_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_video_multiview_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_video_multiview_meta")
  (return-type "GstVideoMultiviewMeta*")
  (parameters
    '("guint" "n_views")
  )
)

(define-method set_n_views
  (of-object "GstVideoMultiviewMeta")
  (c-name "gst_video_multiview_meta_set_n_views")
  (return-type "none")
  (parameters
    '("guint" "n_views")
  )
)



;; From video-orc-dist.h

(define-function video_orc_blend_little
  (c-name "video_orc_blend_little")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_blend_big
  (c-name "video_orc_blend_big")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_I420
  (c-name "video_orc_unpack_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "n")
  )
)

(define-function video_orc_pack_I420
  (c-name "video_orc_pack_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_Y
  (c-name "video_orc_pack_Y")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_YUY2
  (c-name "video_orc_unpack_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_YUY2
  (c-name "video_orc_pack_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_UYVY
  (c-name "video_orc_pack_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_UYVY
  (c-name "video_orc_unpack_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_YVYU
  (c-name "video_orc_unpack_YVYU")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_YVYU
  (c-name "video_orc_pack_YVYU")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_YUV9
  (c-name "video_orc_unpack_YUV9")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "n")
  )
)

(define-function video_orc_unpack_Y42B
  (c-name "video_orc_unpack_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "n")
  )
)

(define-function video_orc_pack_Y42B
  (c-name "video_orc_pack_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_Y444
  (c-name "video_orc_unpack_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "n")
  )
)

(define-function video_orc_pack_Y444
  (c-name "video_orc_pack_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_GRAY8
  (c-name "video_orc_unpack_GRAY8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_GRAY8
  (c-name "video_orc_pack_GRAY8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGRA
  (c-name "video_orc_unpack_BGRA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGRA
  (c-name "video_orc_pack_BGRA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGBA
  (c-name "video_orc_pack_RGBA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGBA
  (c-name "video_orc_unpack_RGBA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_ABGR
  (c-name "video_orc_unpack_ABGR")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_ABGR
  (c-name "video_orc_pack_ABGR")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_NV12
  (c-name "video_orc_unpack_NV12")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_pack_NV12
  (c-name "video_orc_pack_NV12")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_NV21
  (c-name "video_orc_unpack_NV21")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_pack_NV21
  (c-name "video_orc_pack_NV21")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_NV24
  (c-name "video_orc_unpack_NV24")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_pack_NV24
  (c-name "video_orc_pack_NV24")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_A420
  (c-name "video_orc_unpack_A420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_pack_A420
  (c-name "video_orc_pack_A420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("guint8*-ORC_RESTRICT" "d4")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_AY
  (c-name "video_orc_pack_AY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB15_le
  (c-name "video_orc_unpack_RGB15_le")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB15_be
  (c-name "video_orc_unpack_RGB15_be")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB15_le_trunc
  (c-name "video_orc_unpack_RGB15_le_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB15_be_trunc
  (c-name "video_orc_unpack_RGB15_be_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGB15_le
  (c-name "video_orc_pack_RGB15_le")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGB15_be
  (c-name "video_orc_pack_RGB15_be")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR15_le
  (c-name "video_orc_unpack_BGR15_le")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR15_be
  (c-name "video_orc_unpack_BGR15_be")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR15_le_trunc
  (c-name "video_orc_unpack_BGR15_le_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR15_be_trunc
  (c-name "video_orc_unpack_BGR15_be_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGR15_le
  (c-name "video_orc_pack_BGR15_le")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGR15_be
  (c-name "video_orc_pack_BGR15_be")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB16
  (c-name "video_orc_unpack_RGB16")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB16_trunc
  (c-name "video_orc_unpack_RGB16_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGB16_le
  (c-name "video_orc_pack_RGB16_le")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGB16_be
  (c-name "video_orc_pack_RGB16_be")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR16
  (c-name "video_orc_unpack_BGR16")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR16_trunc
  (c-name "video_orc_unpack_BGR16_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGR16_le
  (c-name "video_orc_pack_BGR16_le")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGR16_be
  (c-name "video_orc_pack_BGR16_be")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_resample_bilinear_u32
  (c-name "video_orc_resample_bilinear_u32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function video_orc_merge_linear_u8
  (c-name "video_orc_merge_linear_u8")
  (return-type "none")
  (parameters
    '("orc_uint8*-ORC_RESTRICT" "d1")
    '("const-orc_uint8*-ORC_RESTRICT" "s1")
    '("const-orc_uint8*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_memset_2d
  (c-name "video_orc_memset_2d")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_memcpy_2d
  (c-name "video_orc_memcpy_2d")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_u16_to_u8
  (c-name "video_orc_convert_u16_to_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_convert_u8_to_u16
  (c-name "video_orc_convert_u8_to_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_splat_u16
  (c-name "video_orc_splat_u16")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_splat_u32
  (c-name "video_orc_splat_u32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_splat_u64
  (c-name "video_orc_splat_u64")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_splat2_u64
  (c-name "video_orc_splat2_u64")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_convert_I420_UYVY
  (c-name "video_orc_convert_I420_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_convert_I420_YUY2
  (c-name "video_orc_convert_I420_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_convert_I420_AYUV
  (c-name "video_orc_convert_I420_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_convert_YUY2_I420
  (c-name "video_orc_convert_YUY2_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("guint8*-ORC_RESTRICT" "d4")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_convert_UYVY_YUY2
  (c-name "video_orc_convert_UYVY_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_420_422
  (c-name "video_orc_planar_chroma_420_422")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_420_444
  (c-name "video_orc_planar_chroma_420_444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_422_444
  (c-name "video_orc_planar_chroma_422_444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_444_422
  (c-name "video_orc_planar_chroma_444_422")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_444_420
  (c-name "video_orc_planar_chroma_444_420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_422_420
  (c-name "video_orc_planar_chroma_422_420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_YUY2_AYUV
  (c-name "video_orc_convert_YUY2_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_UYVY_AYUV
  (c-name "video_orc_convert_UYVY_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_YUY2_Y42B
  (c-name "video_orc_convert_YUY2_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_UYVY_Y42B
  (c-name "video_orc_convert_UYVY_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_YUY2_Y444
  (c-name "video_orc_convert_YUY2_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_UYVY_Y444
  (c-name "video_orc_convert_UYVY_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_UYVY_I420
  (c-name "video_orc_convert_UYVY_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("guint8*-ORC_RESTRICT" "d4")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_convert_AYUV_I420
  (c-name "video_orc_convert_AYUV_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("guint8*-ORC_RESTRICT" "d4")
    '("int" "d4_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_YUY2
  (c-name "video_orc_convert_AYUV_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_UYVY
  (c-name "video_orc_convert_AYUV_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_Y42B
  (c-name "video_orc_convert_AYUV_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_Y444
  (c-name "video_orc_convert_AYUV_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y42B_YUY2
  (c-name "video_orc_convert_Y42B_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y42B_UYVY
  (c-name "video_orc_convert_Y42B_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y42B_AYUV
  (c-name "video_orc_convert_Y42B_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y444_YUY2
  (c-name "video_orc_convert_Y444_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y444_UYVY
  (c-name "video_orc_convert_Y444_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y444_AYUV
  (c-name "video_orc_convert_Y444_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_ARGB
  (c-name "video_orc_convert_AYUV_ARGB")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_BGRA
  (c-name "video_orc_convert_AYUV_BGRA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_ABGR
  (c-name "video_orc_convert_AYUV_ABGR")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_RGBA
  (c-name "video_orc_convert_AYUV_RGBA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_I420_BGRA
  (c-name "video_orc_convert_I420_BGRA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
  )
)

(define-function video_orc_matrix8
  (c-name "video_orc_matrix8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("orc_int64" "p1")
    '("orc_int64" "p2")
    '("orc_int64" "p3")
    '("orc_int64" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_near_u32_lq
  (c-name "video_orc_resample_h_near_u32_lq")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_2tap_1u8_lq
  (c-name "video_orc_resample_h_2tap_1u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_2tap_4u8_lq
  (c-name "video_orc_resample_h_2tap_4u8_lq")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_2tap_u8_lq
  (c-name "video_orc_resample_h_2tap_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-gint16*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_2tap_u16
  (c-name "video_orc_resample_h_2tap_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("const-gint16*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_2tap_u8_lq
  (c-name "video_orc_resample_v_2tap_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_2tap_u16
  (c-name "video_orc_resample_v_2tap_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_2tap_u8
  (c-name "video_orc_resample_v_2tap_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_4tap_u8_lq
  (c-name "video_orc_resample_v_4tap_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_4tap_u8
  (c-name "video_orc_resample_v_4tap_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_multaps_u8
  (c-name "video_orc_resample_h_multaps_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdtaps_u8
  (c-name "video_orc_resample_h_muladdtaps_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_resample_scaletaps_u8
  (c-name "video_orc_resample_scaletaps_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_multaps_u8_lq
  (c-name "video_orc_resample_h_multaps_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdtaps_u8_lq
  (c-name "video_orc_resample_h_muladdtaps_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_resample_h_multaps3_u8_lq
  (c-name "video_orc_resample_h_multaps3_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("const-gint16*-ORC_RESTRICT" "s5")
    '("const-gint16*-ORC_RESTRICT" "s6")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdtaps3_u8_lq
  (c-name "video_orc_resample_h_muladdtaps3_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("const-gint16*-ORC_RESTRICT" "s5")
    '("const-gint16*-ORC_RESTRICT" "s6")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdscaletaps3_u8_lq
  (c-name "video_orc_resample_h_muladdscaletaps3_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("const-gint16*-ORC_RESTRICT" "s5")
    '("const-gint16*-ORC_RESTRICT" "s6")
    '("const-gint16*-ORC_RESTRICT" "s7")
    '("int" "n")
  )
)

(define-function video_orc_resample_scaletaps_u8_lq
  (c-name "video_orc_resample_scaletaps_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_multaps_u16
  (c-name "video_orc_resample_h_multaps_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdtaps_u16
  (c-name "video_orc_resample_h_muladdtaps_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_resample_scaletaps_u16
  (c-name "video_orc_resample_scaletaps_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_multaps_u8
  (c-name "video_orc_resample_v_multaps_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdtaps_u8
  (c-name "video_orc_resample_v_muladdtaps_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_multaps_u16
  (c-name "video_orc_resample_v_multaps_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdtaps_u16
  (c-name "video_orc_resample_v_muladdtaps_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_multaps_u8_lq
  (c-name "video_orc_resample_v_multaps_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_multaps4_u8_lq
  (c-name "video_orc_resample_v_multaps4_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdtaps_u8_lq
  (c-name "video_orc_resample_v_muladdtaps_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdtaps4_u8_lq
  (c-name "video_orc_resample_v_muladdtaps4_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdscaletaps4_u8_lq
  (c-name "video_orc_resample_v_muladdscaletaps4_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("const-gint16*-ORC_RESTRICT" "s5")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_h2_u8
  (c-name "video_orc_chroma_down_h2_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_v2_u8
  (c-name "video_orc_chroma_down_v2_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_chroma_up_v2_u8
  (c-name "video_orc_chroma_up_v2_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_chroma_up_v2_u16
  (c-name "video_orc_chroma_up_v2_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("guint16*-ORC_RESTRICT" "d2")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_v2_u16
  (c-name "video_orc_chroma_down_v2_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_v4_u8
  (c-name "video_orc_chroma_down_v4_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_v4_u16
  (c-name "video_orc_chroma_down_v4_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("const-guint16*-ORC_RESTRICT" "s3")
    '("const-guint16*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_dither_none_4u8_mask
  (c-name "video_orc_dither_none_4u8_mask")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_dither_none_4u16_mask
  (c-name "video_orc_dither_none_4u16_mask")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_dither_verterr_4u8_mask
  (c-name "video_orc_dither_verterr_4u8_mask")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint16*-ORC_RESTRICT" "d2")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_dither_fs_muladd_u8
  (c-name "video_orc_dither_fs_muladd_u8")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("int" "n")
  )
)

(define-function video_orc_dither_ordered_u8
  (c-name "video_orc_dither_ordered_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_dither_ordered_4u8_mask
  (c-name "video_orc_dither_ordered_4u8_mask")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_dither_ordered_4u16_mask
  (c-name "video_orc_dither_ordered_4u16_mask")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_convert_UYVY_GRAY8
  (c-name "video_orc_convert_UYVY_GRAY8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-orc_uint16*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)



;; From video-orc.h

(define-function video_orc_blend_little
  (c-name "video_orc_blend_little")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_blend_big
  (c-name "video_orc_blend_big")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_I420
  (c-name "video_orc_unpack_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "n")
  )
)

(define-function video_orc_pack_I420
  (c-name "video_orc_pack_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_Y
  (c-name "video_orc_pack_Y")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_YUY2
  (c-name "video_orc_unpack_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_YUY2
  (c-name "video_orc_pack_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_UYVY
  (c-name "video_orc_pack_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_UYVY
  (c-name "video_orc_unpack_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_YVYU
  (c-name "video_orc_unpack_YVYU")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_YVYU
  (c-name "video_orc_pack_YVYU")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_YUV9
  (c-name "video_orc_unpack_YUV9")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "n")
  )
)

(define-function video_orc_unpack_Y42B
  (c-name "video_orc_unpack_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "n")
  )
)

(define-function video_orc_pack_Y42B
  (c-name "video_orc_pack_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_Y444
  (c-name "video_orc_unpack_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "n")
  )
)

(define-function video_orc_pack_Y444
  (c-name "video_orc_pack_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_GRAY8
  (c-name "video_orc_unpack_GRAY8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_GRAY8
  (c-name "video_orc_pack_GRAY8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGRA
  (c-name "video_orc_unpack_BGRA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGRA
  (c-name "video_orc_pack_BGRA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGBA
  (c-name "video_orc_pack_RGBA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGBA
  (c-name "video_orc_unpack_RGBA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_ABGR
  (c-name "video_orc_unpack_ABGR")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_ABGR
  (c-name "video_orc_pack_ABGR")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_NV12
  (c-name "video_orc_unpack_NV12")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_pack_NV12
  (c-name "video_orc_pack_NV12")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_NV21
  (c-name "video_orc_unpack_NV21")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_pack_NV21
  (c-name "video_orc_pack_NV21")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_NV24
  (c-name "video_orc_unpack_NV24")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_pack_NV24
  (c-name "video_orc_pack_NV24")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_A420
  (c-name "video_orc_unpack_A420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_pack_A420
  (c-name "video_orc_pack_A420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("guint8*-ORC_RESTRICT" "d4")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_AY
  (c-name "video_orc_pack_AY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB15_le
  (c-name "video_orc_unpack_RGB15_le")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB15_be
  (c-name "video_orc_unpack_RGB15_be")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB15_le_trunc
  (c-name "video_orc_unpack_RGB15_le_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB15_be_trunc
  (c-name "video_orc_unpack_RGB15_be_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGB15_le
  (c-name "video_orc_pack_RGB15_le")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGB15_be
  (c-name "video_orc_pack_RGB15_be")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR15_le
  (c-name "video_orc_unpack_BGR15_le")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR15_be
  (c-name "video_orc_unpack_BGR15_be")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR15_le_trunc
  (c-name "video_orc_unpack_BGR15_le_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR15_be_trunc
  (c-name "video_orc_unpack_BGR15_be_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGR15_le
  (c-name "video_orc_pack_BGR15_le")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGR15_be
  (c-name "video_orc_pack_BGR15_be")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB16
  (c-name "video_orc_unpack_RGB16")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_RGB16_trunc
  (c-name "video_orc_unpack_RGB16_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGB16_le
  (c-name "video_orc_pack_RGB16_le")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_RGB16_be
  (c-name "video_orc_pack_RGB16_be")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR16
  (c-name "video_orc_unpack_BGR16")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_unpack_BGR16_trunc
  (c-name "video_orc_unpack_BGR16_trunc")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGR16_le
  (c-name "video_orc_pack_BGR16_le")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_pack_BGR16_be
  (c-name "video_orc_pack_BGR16_be")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_resample_bilinear_u32
  (c-name "video_orc_resample_bilinear_u32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function video_orc_merge_linear_u8
  (c-name "video_orc_merge_linear_u8")
  (return-type "none")
  (parameters
    '("orc_uint8*-ORC_RESTRICT" "d1")
    '("const-orc_uint8*-ORC_RESTRICT" "s1")
    '("const-orc_uint8*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_memset_2d
  (c-name "video_orc_memset_2d")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_memcpy_2d
  (c-name "video_orc_memcpy_2d")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_u16_to_u8
  (c-name "video_orc_convert_u16_to_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_convert_u8_to_u16
  (c-name "video_orc_convert_u8_to_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_splat_u16
  (c-name "video_orc_splat_u16")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_splat_u32
  (c-name "video_orc_splat_u32")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_splat_u64
  (c-name "video_orc_splat_u64")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_splat2_u64
  (c-name "video_orc_splat2_u64")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_convert_I420_UYVY
  (c-name "video_orc_convert_I420_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_convert_I420_YUY2
  (c-name "video_orc_convert_I420_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_convert_I420_AYUV
  (c-name "video_orc_convert_I420_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_convert_YUY2_I420
  (c-name "video_orc_convert_YUY2_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("guint8*-ORC_RESTRICT" "d4")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_convert_UYVY_YUY2
  (c-name "video_orc_convert_UYVY_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_420_422
  (c-name "video_orc_planar_chroma_420_422")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_420_444
  (c-name "video_orc_planar_chroma_420_444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_422_444
  (c-name "video_orc_planar_chroma_422_444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_444_422
  (c-name "video_orc_planar_chroma_444_422")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_444_420
  (c-name "video_orc_planar_chroma_444_420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_planar_chroma_422_420
  (c-name "video_orc_planar_chroma_422_420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_YUY2_AYUV
  (c-name "video_orc_convert_YUY2_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_UYVY_AYUV
  (c-name "video_orc_convert_UYVY_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_YUY2_Y42B
  (c-name "video_orc_convert_YUY2_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_UYVY_Y42B
  (c-name "video_orc_convert_UYVY_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_YUY2_Y444
  (c-name "video_orc_convert_YUY2_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_UYVY_Y444
  (c-name "video_orc_convert_UYVY_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_UYVY_I420
  (c-name "video_orc_convert_UYVY_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("guint8*-ORC_RESTRICT" "d3")
    '("guint8*-ORC_RESTRICT" "d4")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_convert_AYUV_I420
  (c-name "video_orc_convert_AYUV_I420")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("guint8*-ORC_RESTRICT" "d4")
    '("int" "d4_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_YUY2
  (c-name "video_orc_convert_AYUV_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_UYVY
  (c-name "video_orc_convert_AYUV_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_Y42B
  (c-name "video_orc_convert_AYUV_Y42B")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_Y444
  (c-name "video_orc_convert_AYUV_Y444")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("guint8*-ORC_RESTRICT" "d2")
    '("int" "d2_stride")
    '("guint8*-ORC_RESTRICT" "d3")
    '("int" "d3_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y42B_YUY2
  (c-name "video_orc_convert_Y42B_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y42B_UYVY
  (c-name "video_orc_convert_Y42B_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y42B_AYUV
  (c-name "video_orc_convert_Y42B_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y444_YUY2
  (c-name "video_orc_convert_Y444_YUY2")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y444_UYVY
  (c-name "video_orc_convert_Y444_UYVY")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_Y444_AYUV
  (c-name "video_orc_convert_Y444_AYUV")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "s3_stride")
    '("int" "p1")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_ARGB
  (c-name "video_orc_convert_AYUV_ARGB")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_BGRA
  (c-name "video_orc_convert_AYUV_BGRA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_ABGR
  (c-name "video_orc_convert_AYUV_ABGR")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_AYUV_RGBA
  (c-name "video_orc_convert_AYUV_RGBA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_convert_I420_BGRA
  (c-name "video_orc_convert_I420_BGRA")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "p5")
    '("int" "n")
  )
)

(define-function video_orc_matrix8
  (c-name "video_orc_matrix8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("orc_int64" "p1")
    '("orc_int64" "p2")
    '("orc_int64" "p3")
    '("orc_int64" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_near_u32_lq
  (c-name "video_orc_resample_h_near_u32_lq")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_2tap_1u8_lq
  (c-name "video_orc_resample_h_2tap_1u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_2tap_4u8_lq
  (c-name "video_orc_resample_h_2tap_4u8_lq")
  (return-type "none")
  (parameters
    '("guint32*-ORC_RESTRICT" "d1")
    '("const-guint32*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "p2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_2tap_u8_lq
  (c-name "video_orc_resample_h_2tap_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-gint16*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_2tap_u16
  (c-name "video_orc_resample_h_2tap_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("const-gint16*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_2tap_u8_lq
  (c-name "video_orc_resample_v_2tap_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_2tap_u16
  (c-name "video_orc_resample_v_2tap_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_2tap_u8
  (c-name "video_orc_resample_v_2tap_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_4tap_u8_lq
  (c-name "video_orc_resample_v_4tap_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_4tap_u8
  (c-name "video_orc_resample_v_4tap_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_multaps_u8
  (c-name "video_orc_resample_h_multaps_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdtaps_u8
  (c-name "video_orc_resample_h_muladdtaps_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_resample_scaletaps_u8
  (c-name "video_orc_resample_scaletaps_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_multaps_u8_lq
  (c-name "video_orc_resample_h_multaps_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdtaps_u8_lq
  (c-name "video_orc_resample_h_muladdtaps_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_resample_h_multaps3_u8_lq
  (c-name "video_orc_resample_h_multaps3_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("const-gint16*-ORC_RESTRICT" "s5")
    '("const-gint16*-ORC_RESTRICT" "s6")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdtaps3_u8_lq
  (c-name "video_orc_resample_h_muladdtaps3_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("const-gint16*-ORC_RESTRICT" "s5")
    '("const-gint16*-ORC_RESTRICT" "s6")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdscaletaps3_u8_lq
  (c-name "video_orc_resample_h_muladdscaletaps3_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-gint16*-ORC_RESTRICT" "s4")
    '("const-gint16*-ORC_RESTRICT" "s5")
    '("const-gint16*-ORC_RESTRICT" "s6")
    '("const-gint16*-ORC_RESTRICT" "s7")
    '("int" "n")
  )
)

(define-function video_orc_resample_scaletaps_u8_lq
  (c-name "video_orc_resample_scaletaps_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-gint16*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_multaps_u16
  (c-name "video_orc_resample_h_multaps_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_resample_h_muladdtaps_u16
  (c-name "video_orc_resample_h_muladdtaps_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("const-gint16*-ORC_RESTRICT" "s2")
    '("int" "s2_stride")
    '("int" "n")
    '("int" "m")
  )
)

(define-function video_orc_resample_scaletaps_u16
  (c-name "video_orc_resample_scaletaps_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-gint32*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_multaps_u8
  (c-name "video_orc_resample_v_multaps_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdtaps_u8
  (c-name "video_orc_resample_v_muladdtaps_u8")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_multaps_u16
  (c-name "video_orc_resample_v_multaps_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdtaps_u16
  (c-name "video_orc_resample_v_muladdtaps_u16")
  (return-type "none")
  (parameters
    '("gint32*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_multaps_u8_lq
  (c-name "video_orc_resample_v_multaps_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_multaps4_u8_lq
  (c-name "video_orc_resample_v_multaps4_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdtaps_u8_lq
  (c-name "video_orc_resample_v_muladdtaps_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdtaps4_u8_lq
  (c-name "video_orc_resample_v_muladdtaps4_u8_lq")
  (return-type "none")
  (parameters
    '("gint16*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_resample_v_muladdscaletaps4_u8_lq
  (c-name "video_orc_resample_v_muladdscaletaps4_u8_lq")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("const-gint16*-ORC_RESTRICT" "s5")
    '("int" "p1")
    '("int" "p2")
    '("int" "p3")
    '("int" "p4")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_h2_u8
  (c-name "video_orc_chroma_down_h2_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_v2_u8
  (c-name "video_orc_chroma_down_v2_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_chroma_up_v2_u8
  (c-name "video_orc_chroma_up_v2_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint8*-ORC_RESTRICT" "d2")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_chroma_up_v2_u16
  (c-name "video_orc_chroma_up_v2_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("guint16*-ORC_RESTRICT" "d2")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_v2_u16
  (c-name "video_orc_chroma_down_v2_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_v4_u8
  (c-name "video_orc_chroma_down_v4_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("const-guint8*-ORC_RESTRICT" "s2")
    '("const-guint8*-ORC_RESTRICT" "s3")
    '("const-guint8*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_chroma_down_v4_u16
  (c-name "video_orc_chroma_down_v4_u16")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("const-guint16*-ORC_RESTRICT" "s2")
    '("const-guint16*-ORC_RESTRICT" "s3")
    '("const-guint16*-ORC_RESTRICT" "s4")
    '("int" "n")
  )
)

(define-function video_orc_dither_none_4u8_mask
  (c-name "video_orc_dither_none_4u8_mask")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "p1")
    '("int" "n")
  )
)

(define-function video_orc_dither_none_4u16_mask
  (c-name "video_orc_dither_none_4u16_mask")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_dither_verterr_4u8_mask
  (c-name "video_orc_dither_verterr_4u8_mask")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("guint16*-ORC_RESTRICT" "d2")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_dither_fs_muladd_u8
  (c-name "video_orc_dither_fs_muladd_u8")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("int" "n")
  )
)

(define-function video_orc_dither_ordered_u8
  (c-name "video_orc_dither_ordered_u8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint8*-ORC_RESTRICT" "s1")
    '("int" "n")
  )
)

(define-function video_orc_dither_ordered_4u8_mask
  (c-name "video_orc_dither_ordered_4u8_mask")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_dither_ordered_4u16_mask
  (c-name "video_orc_dither_ordered_4u16_mask")
  (return-type "none")
  (parameters
    '("guint16*-ORC_RESTRICT" "d1")
    '("const-guint16*-ORC_RESTRICT" "s1")
    '("orc_int64" "p1")
    '("int" "n")
  )
)

(define-function video_orc_convert_UYVY_GRAY8
  (c-name "video_orc_convert_UYVY_GRAY8")
  (return-type "none")
  (parameters
    '("guint8*-ORC_RESTRICT" "d1")
    '("int" "d1_stride")
    '("const-orc_uint16*-ORC_RESTRICT" "s1")
    '("int" "s1_stride")
    '("int" "n")
    '("int" "m")
  )
)



;; From videoorientation.h

(define-function gst_video_orientation_get_type
  (c-name "gst_video_orientation_get_type")
  (return-type "GType")
)

(define-method get_hflip
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_get_hflip")
  (return-type "gboolean")
  (parameters
    '("gboolean*" "flip")
  )
)

(define-method get_vflip
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_get_vflip")
  (return-type "gboolean")
  (parameters
    '("gboolean*" "flip")
  )
)

(define-method get_hcenter
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_get_hcenter")
  (return-type "gboolean")
  (parameters
    '("gint*" "center")
  )
)

(define-method get_vcenter
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_get_vcenter")
  (return-type "gboolean")
  (parameters
    '("gint*" "center")
  )
)

(define-method set_hflip
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_set_hflip")
  (return-type "gboolean")
  (parameters
    '("gboolean" "flip")
  )
)

(define-method set_vflip
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_set_vflip")
  (return-type "gboolean")
  (parameters
    '("gboolean" "flip")
  )
)

(define-method set_hcenter
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_set_hcenter")
  (return-type "gboolean")
  (parameters
    '("gint" "center")
  )
)

(define-method set_vcenter
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_set_vcenter")
  (return-type "gboolean")
  (parameters
    '("gint" "center")
  )
)



;; From video-overlay-composition.h

(define-method ref
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_ref")
  (return-type "GstVideoOverlayRectangle*")
)

(define-method unref
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_unref")
  (return-type "none")
)

(define-function gst_video_overlay_rectangle_get_type
  (c-name "gst_video_overlay_rectangle_get_type")
  (return-type "GType")
)

(define-function gst_video_overlay_rectangle_new_raw
  (c-name "gst_video_overlay_rectangle_new_raw")
  (return-type "GstVideoOverlayRectangle*")
  (parameters
    '("GstBuffer*" "pixels")
    '("gint" "render_x")
    '("gint" "render_y")
    '("guint" "render_width")
    '("guint" "render_height")
    '("GstVideoOverlayFormatFlags" "flags")
  )
)

(define-method copy
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_copy")
  (return-type "GstVideoOverlayRectangle*")
)

(define-method get_seqnum
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_seqnum")
  (return-type "guint")
)

(define-method set_render_rectangle
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_set_render_rectangle")
  (return-type "none")
  (parameters
    '("gint" "render_x")
    '("gint" "render_y")
    '("guint" "render_width")
    '("guint" "render_height")
  )
)

(define-method get_render_rectangle
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_render_rectangle")
  (return-type "gboolean")
  (parameters
    '("gint*" "render_x")
    '("gint*" "render_y")
    '("guint*" "render_width")
    '("guint*" "render_height")
  )
)

(define-method get_pixels_raw
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_pixels_raw")
  (return-type "GstBuffer*")
  (parameters
    '("GstVideoOverlayFormatFlags" "flags")
  )
)

(define-method get_pixels_argb
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_pixels_argb")
  (return-type "GstBuffer*")
  (parameters
    '("GstVideoOverlayFormatFlags" "flags")
  )
)

(define-method get_pixels_ayuv
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_pixels_ayuv")
  (return-type "GstBuffer*")
  (parameters
    '("GstVideoOverlayFormatFlags" "flags")
  )
)

(define-method get_pixels_unscaled_raw
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_pixels_unscaled_raw")
  (return-type "GstBuffer*")
  (parameters
    '("GstVideoOverlayFormatFlags" "flags")
  )
)

(define-method get_pixels_unscaled_argb
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_pixels_unscaled_argb")
  (return-type "GstBuffer*")
  (parameters
    '("GstVideoOverlayFormatFlags" "flags")
  )
)

(define-method get_pixels_unscaled_ayuv
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_pixels_unscaled_ayuv")
  (return-type "GstBuffer*")
  (parameters
    '("GstVideoOverlayFormatFlags" "flags")
  )
)

(define-method get_flags
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_flags")
  (return-type "GstVideoOverlayFormatFlags")
)

(define-method get_global_alpha
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_get_global_alpha")
  (return-type "gfloat")
)

(define-method set_global_alpha
  (of-object "GstVideoOverlayRectangle")
  (c-name "gst_video_overlay_rectangle_set_global_alpha")
  (return-type "none")
  (parameters
    '("gfloat" "global_alpha")
  )
)

(define-method ref
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_ref")
  (return-type "GstVideoOverlayComposition*")
)

(define-method unref
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_unref")
  (return-type "none")
)

(define-function gst_video_overlay_composition_get_type
  (c-name "gst_video_overlay_composition_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_copy")
  (return-type "GstVideoOverlayComposition*")
)

(define-method make_writable
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_make_writable")
  (return-type "GstVideoOverlayComposition*")
)

(define-function gst_video_overlay_composition_new
  (c-name "gst_video_overlay_composition_new")
  (is-constructor-of "GstVideoOverlayComposition")
  (return-type "GstVideoOverlayComposition*")
  (parameters
    '("GstVideoOverlayRectangle*" "rectangle")
  )
)

(define-method add_rectangle
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_add_rectangle")
  (return-type "none")
  (parameters
    '("GstVideoOverlayRectangle*" "rectangle")
  )
)

(define-method n_rectangles
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_n_rectangles")
  (return-type "guint")
)

(define-method get_rectangle
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_get_rectangle")
  (return-type "GstVideoOverlayRectangle*")
  (parameters
    '("guint" "n")
  )
)

(define-method get_seqnum
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_get_seqnum")
  (return-type "guint")
)

(define-method blend
  (of-object "GstVideoOverlayComposition")
  (c-name "gst_video_overlay_composition_blend")
  (return-type "gboolean")
  (parameters
    '("GstVideoFrame*" "video_buf")
  )
)

(define-function gst_video_overlay_composition_meta_api_get_type
  (c-name "gst_video_overlay_composition_meta_api_get_type")
  (return-type "GType")
)

(define-function gst_video_overlay_composition_meta_get_info
  (c-name "gst_video_overlay_composition_meta_get_info")
  (return-type "const-GstMetaInfo*")
)

(define-method add_video_overlay_composition_meta
  (of-object "GstBuffer")
  (c-name "gst_buffer_add_video_overlay_composition_meta")
  (return-type "GstVideoOverlayCompositionMeta*")
  (parameters
    '("GstVideoOverlayComposition*" "comp")
  )
)



;; From videooverlay.h

(define-function gst_video_overlay_get_type
  (c-name "gst_video_overlay_get_type")
  (return-type "GType")
)

(define-method set_render_rectangle
  (of-object "GstVideoOverlay")
  (c-name "gst_video_overlay_set_render_rectangle")
  (return-type "gboolean")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "width")
    '("gint" "height")
  )
)

(define-method expose
  (of-object "GstVideoOverlay")
  (c-name "gst_video_overlay_expose")
  (return-type "none")
)

(define-method handle_events
  (of-object "GstVideoOverlay")
  (c-name "gst_video_overlay_handle_events")
  (return-type "none")
  (parameters
    '("gboolean" "handle_events")
  )
)

(define-method set_window_handle
  (of-object "GstVideoOverlay")
  (c-name "gst_video_overlay_set_window_handle")
  (return-type "none")
  (parameters
    '("guintptr" "handle")
  )
)

(define-method got_window_handle
  (of-object "GstVideoOverlay")
  (c-name "gst_video_overlay_got_window_handle")
  (return-type "none")
  (parameters
    '("guintptr" "handle")
  )
)

(define-method prepare_window_handle
  (of-object "GstVideoOverlay")
  (c-name "gst_video_overlay_prepare_window_handle")
  (return-type "none")
)

(define-function gst_is_video_overlay_prepare_window_handle_message
  (c-name "gst_is_video_overlay_prepare_window_handle_message")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "msg")
  )
)



;; From video-resampler.h

(define-method init
  (of-object "GstVideoResampler")
  (c-name "gst_video_resampler_init")
  (return-type "gboolean")
  (parameters
    '("GstVideoResamplerMethod" "method")
    '("GstVideoResamplerFlags" "flags")
    '("guint" "n_phases")
    '("guint" "n_taps")
    '("gdouble" "shift")
    '("guint" "in_size")
    '("guint" "out_size")
    '("GstStructure*" "options")
  )
)

(define-method clear
  (of-object "GstVideoResampler")
  (c-name "gst_video_resampler_clear")
  (return-type "none")
)



;; From video-scaler.h

(define-function gst_video_scaler_new
  (c-name "gst_video_scaler_new")
  (is-constructor-of "GstVideoScaler")
  (return-type "GstVideoScaler*")
  (parameters
    '("GstVideoResamplerMethod" "method")
    '("GstVideoScalerFlags" "flags")
    '("guint" "n_taps")
    '("guint" "in_size")
    '("guint" "out_size")
    '("GstStructure*" "options")
  )
)

(define-method free
  (of-object "GstVideoScaler")
  (c-name "gst_video_scaler_free")
  (return-type "none")
)

(define-method get_max_taps
  (of-object "GstVideoScaler")
  (c-name "gst_video_scaler_get_max_taps")
  (return-type "guint")
)

(define-method get_coeff
  (of-object "GstVideoScaler")
  (c-name "gst_video_scaler_get_coeff")
  (return-type "const-gdouble*")
  (parameters
    '("guint" "out_offset")
    '("guint*" "in_offset")
    '("guint*" "n_taps")
  )
)

(define-method horizontal
  (of-object "GstVideoScaler")
  (c-name "gst_video_scaler_horizontal")
  (return-type "none")
  (parameters
    '("GstVideoFormat" "format")
    '("gpointer" "src")
    '("gpointer" "dest")
    '("guint" "dest_offset")
    '("guint" "width")
  )
)

(define-method vertical
  (of-object "GstVideoScaler")
  (c-name "gst_video_scaler_vertical")
  (return-type "none")
  (parameters
    '("GstVideoFormat" "format")
    '("gpointer[]" "src_lines")
    '("gpointer" "dest")
    '("guint" "dest_offset")
    '("guint" "width")
  )
)

(define-method combine_packed_YUV
  (of-object "GstVideoScaler")
  (c-name "gst_video_scaler_combine_packed_YUV")
  (return-type "GstVideoScaler*")
  (parameters
    '("GstVideoScaler*" "uv_scale")
    '("GstVideoFormat" "in_format")
    '("GstVideoFormat" "out_format")
  )
)

(define-method 2d
  (of-object "GstVideoScaler")
  (c-name "gst_video_scaler_2d")
  (return-type "none")
  (parameters
    '("GstVideoScaler*" "vscale")
    '("GstVideoFormat" "format")
    '("gpointer" "src")
    '("gint" "src_stride")
    '("gpointer" "dest")
    '("gint" "dest_stride")
    '("guint" "x")
    '("guint" "y")
    '("guint" "width")
    '("guint" "height")
  )
)



;; From video-tile.h

(define-function gst_video_tile_get_index
  (c-name "gst_video_tile_get_index")
  (return-type "guint")
  (parameters
    '("GstVideoTileMode" "mode")
    '("gint" "x")
    '("gint" "y")
    '("gint" "x_tiles")
    '("gint" "y_tiles")
  )
)


